【问题标题】:How to calculate delta time (hour) between two datetime from two csv file?如何从两个 csv 文件计算两个日期时间之间的增量时间(小时)?
【发布时间】:2019-07-16 01:17:06
【问题描述】:

我有两个 csv 文件,第一个(例如“time.csv”)包含有关 ID 和特定时间的信息(一个 ID 一个日期时间信息)。

ID     datetime
1      2019-05-01 14:00
2      2019-05-02 12:00
3      2019-04-02 10:00

另一个 csv 文件包含每个 ID 的其他特征,时间戳为一小时。一头牛可能有几行,我需要创建新列“deltahour”,它显示当前时间和“time.csv”上特定ID的日期时间之间的差异。

ID     datetime              deltahour
1      2019-05-01 08:00        6
1      2019-05-01 09:00        5
1      2019-05-01 10:00        4
.
.
1      2019-05-01 14:00        0
2      2019-05-02 08:00        4
2      2019-05-02 09:00        3
.
.
2      2019-05-01 12:00        0

如何使用 Pandas 获得这个?谢谢!

【问题讨论】:

    标签: python pandas csv datetime


    【解决方案1】:

    您可以使用merge 然后减去该值

    df1.datetime=pd.to_datetime(df1.datetime)
    df2.datetime=pd.to_datetime(df2.datetime)
    
    df=df1.merge(df2,on='ID').assign(deltahour=lambda x : x['datetime_x']-x['datetime_y'])
    

    【讨论】:

    • 为什么会出现 TypeError: unsupported operand type(s) for -: 'str' and 'str'?
    【解决方案2】:

    确保日期时间列被解析为日期后尝试使用 pd.merge

    【讨论】:

      猜你喜欢
      • 2021-10-09
      • 2012-01-31
      • 2020-06-28
      • 2010-09-17
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 2014-03-08
      相关资源
      最近更新 更多