python - 如何计算两个熊猫列之间的时间差
问题描述
我的 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]
数据类型:对象
我试图找到停止和开始之间的时间差。
我试过了,pd.Timedelta(df_time['stop']-df_time['start'])
但它给了TypeError: data type "datetime" not understood
df_time['stop']-df_time['start']
也给出了同样的错误。
我的预期输出,
2D,?H
1D,?H
...
...
解决方案
您需要 omit pd.Timedelta
,因为时间差返回 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 数组:
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
推荐阅读
- firebase - 让每个用户都有自己的数据 - Flutter - Firebase
- json - 如何将分段的 CF 交通数据 (SS) 与形状数据 (SHP) 结合起来?
- angular - 使用 Auth0 对 Ionic 本机应用电容器进行身份验证
- javascript - 悬停下拉菜单时,如何使用半透明叠加层使内容变暗?
- swift - Firebase 无法读取数据,因为它的格式不正确
- java - 使用 react-native CLI 构建应用程序以在 android 虚拟设备上运行
- selenium - Firefox Geckodriver 问题 - INTERNALERROR>....WebDriverException:消息:TypeError:browserContext.currentWindowGlobal 为 null
- javascript - 如何删除字符串结果中的 [ 和 ]
- flutter - 通过 VSCode 中的 dart 扩展获取 Pub Get 的问题
- r - iframe 在我的 Shiny 应用程序中无法正常工作