【问题标题】:Subtract time only from two date time columns in Pandas仅从 Pandas 中的两个日期时间列中减去时间
【发布时间】:2022-07-07 22:27:05
【问题描述】:

我希望在this thread 中做类似的事情。但是,我只想减去两个date time 列的time 分量。

例如,给定这个数据框:

                  ts1        ts2
0 2018-07-25 11:14:00        2018-07-27 12:14:00
1 2018-08-26 11:15:00        2018-09-24 10:15:00
2 2018-07-29 11:17:00        2018-07-22 11:00:00

ts2 -ts1 时间组件的预期输出应该只给出:

                  ts1                        ts2                ts_delta
0 2018-07-25 11:14:00        2018-07-27 12:14:00                1:00:00
1 2018-08-26 11:15:00        2018-09-24 10:15:00               -1:00:00
2 2018-07-29 11:17:00        2018-07-22 11:00:00               -0:17:00

所以,对于行0ts2 的时间是12:14:00ts1 的时间是11:14:00。预期的输出只是这两次减去(不要关心days)。在这种情况下:

12:14:000 - 11:14:00 = 1:00:00

如何在一行中做到这一点?

【问题讨论】:

  • 您能否进一步指定所需输出的条件是什么?因为您声明它应该是 ts2 - ts1,但这不是您显示的内容。

标签: python pandas datetime


【解决方案1】:

使用df['col_name'].dt.time 从日期时间列获取时间。假设您的数据框名称是 df。现在,在你的情况下

t1 = df['ts1'].dt.time
t2 = df['ts2'].dt.time

df['ts_delta'] = t2 - t1

单行

df['ts_delta'] = df['ts2'].dt.time - df['ts1'].dt.time

希望它能解决您的问题。快乐编码!

【讨论】:

    猜你喜欢
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多