【问题标题】:Formatting duration as "hh:mm:ss" and write to pandas dataframe and to save it as CSV file将持续时间格式化为“hh:mm:ss”并写入 pandas 数据帧并将其保存为 CSV 文件
【发布时间】:2019-09-02 02:03:31
【问题描述】:

我将数据从 CSV 文件导入到 pandas 数据框。

然后,通过取 2 个 datetime 列的差异创建一个持续时间列,如下所示:

df['Drive Time'] = df['Delivered Time'] - df['Pickup Time']

现在,我想将其保存回 CSV 文件,但我希望在使用 Excel 打开时将“行驶时间”列显示为“hh:mm:ss”格式。我使用的代码如下:

import pandas as pd
import numpy as np

df = pd.read_csv("1554897620.csv", parse_dates = ['Pickup Time', 'Delivered Time'])

df['Drive Time'] = df['Delivered Time'] - df['Pickup Time']

df.to_csv(index=False)

df.to_csv('test.csv', index=False)

在结论中,我想在导出为 CSV 时以“hh:mm:ss”格式保存 Drive Time 列

【问题讨论】:

标签: python-3.x pandas export-to-csv timedelta


【解决方案1】:

如果你知道Delivered Time 永远不会超过 24 小时,你可以使用这个技巧:

import pandas as pd
import numpy as np

df = pd.DataFrame(columns=['Delivered Time', 'Pickup Time'])
df['Delivered Time'] = pd.date_range('2019-01-01 13:00', '2019-01-02 13:00', periods=12)
df['Pickup Time'] = pd.date_range('2019-01-01 12:00', '2019-01-02 12:00', periods=12)
df['Drive Time'] = df['Delivered Time'] - df['Pickup Time']

# Trick: transform timedelta to datetime object to enable strftime:
df['Drive Time'] = pd.to_datetime(df['Drive Time']).dt.strftime("%H:%M:%S")

df.to_csv('test.csv')

通过将 timedelta 转换为 datetime 数据类型,您可以使用它的 strftime 方法。

【讨论】:

    猜你喜欢
    • 2023-02-21
    • 2021-12-15
    • 2021-01-18
    • 2016-12-29
    • 2019-07-13
    • 2018-05-22
    • 2016-01-31
    • 1970-01-01
    • 2014-01-21
    相关资源
    最近更新 更多