【问题标题】:Python Pandas Working with Timedelta then saving it to csvPython Pandas 使用 Timedelta 然后将其保存到 csv
【发布时间】:2021-02-28 14:43:27
【问题描述】:

我正在尝试将我目前使用 VBA 自动化的报告转换为 python。 但是由于我的出口工作时间很长,所以我遇到了问题。

如果我想对“%H:%M:%S”格式的数据进行一些测量,我必须使用以下方法对其进行转换:

df['Duration'] = pd.to_timedelta(df['Duration'])

但是当我将数据帧保存回 csv 时,它会将数据保存为 0 days 00:09:17.000000000,我需要将其保存为 %H:%M:%S 格式。

我做错了吗?谢谢

【问题讨论】:

  • 您可以在保存之前创建一个具有您想要的字符串表示形式的列。如果您在 Excel 中打开它,也许您可​​以在 Excel 中格式化列。
  • 如果时长可以超过 24 小时,转换成字符串会有一个 'n days' 前缀。有关自定义格式,请参阅 this post
  • 如果您想要timedelta 的特定格式,请编写您自己的格式化为字符串的函数。 Example.

标签: python pandas timedelta


【解决方案1】:

时间增量是 2 个日期/时间之间的差异,因此将数据保存为

0 days 00:09:17.000000000

如果你想将数据保存为00:09:17.000000000 那么 运行后

df['Duration'] = pd.to_timedelta(df['Duration']) 

然后通过以下方式将其dtype 转换为string:-

df['Duration'] = df['Duration'].astype('str')

最后:-

df['Duration']=df['Duration'].apply(lambda x:x.split(' ')[2])

注意:- 它将数据存储为对象类型而不是 timedelta 类型

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 2018-09-27
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    相关资源
    最近更新 更多