如何计算两个 pandas 柱之间的时差 [英] How to calculate time difference between two pandas column

查看:77
本文介绍了如何计算两个 pandas 柱之间的时差的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的df看起来像

    start               stop
0   2015-11-04 10:12:00 2015-11-06 06:38:00
1   2015-11-04 10:23:00 2015-11-05 08:30:00
2   2015-11-04 14:01:00 2015-11-17 10:34:00
4   2015-11-19 01:43:00 2015-12-21 09:04:00

print(time_df.dtypes)

start       datetime64[ns]
stop        datetime64[ns]

dtype:对象

我正在尝试查找停止和开始之间的时差.

I am trying to find the time difference between, stop and start.

我尝试过, pd.Timedelta(df_time ['stop']-df_time ['start'])但它给出了 TypeError:数据类型"datetime"无法理解

I tried, pd.Timedelta(df_time['stop']-df_time['start']) but it gives TypeError: data type "datetime" not understood

df_time ['stop']-df_time ['start'] 也给出相同的错误.

我的预期输出,

 2D,?H
 1D,?H
 ...
 ...

推荐答案

您需要省略 pd.Timedelta ,因为时间差会返回timedeltas:

You need omit pd.Timedelta, because difference of times return timedeltas:

df_time['td'] = df_time['stop']-df_time['start']
print (df_time)
                start                stop               td
0 2015-11-04 10:12:00 2015-11-06 06:38:00  1 days 20:26:00
1 2015-11-04 10:23:00 2015-11-05 08:30:00  0 days 22:07:00
2 2015-11-04 14:01:00 2015-11-17 10:34:00 12 days 20:33:00

另一个解决方案是减去numpy数组:

Another solution is subtract numpy arrays:

df_time['td'] = df_time['stop'].values - df_time['start'].values
print (df_time)
                start                stop               td
0 2015-11-04 10:12:00 2015-11-06 06:38:00  1 days 20:26:00
1 2015-11-04 10:23:00 2015-11-05 08:30:00  0 days 22:07:00
2 2015-11-04 14:01:00 2015-11-17 10:34:00 12 days 20:33:00

这篇关于如何计算两个 pandas 柱之间的时差的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆