我对此问题处于停滞状态。我在另一个问题(Creating data histograms/visualizations using ipython and filtering out some values)中概述了它,因此我想修复问题并给它更多上下文,因为我确信其他人必须有解决方法或有问题。我也看到过类似的,不完全相同的问题,并且不能适应迄今为止给出的任何解决方案。
我的数据框中有开始时间和结束时间的列,并创建了一个'持续时间'时间列已失效。我正在使用ipython。
“开始时间/结束时间”列的字段如下所示:
2014/03/30 15:45
日期,然后是hh:mm
的时间 当我输入时:
pd.to_datetime('结束时间')和 pd.to_datetime('开始时间')
我得到的结果如下:
2014-03-30 15:45:00
同一日期,但连字符和时间相同,但附加:00秒
然后我决定为结束时间和开始时间之间的差异创建一个新列。 '持续时间'或通过键入一个命令创建时间已过时列:
df ['持续时间'] = pd.to_datetime(df ['结束时间']) - pd.to_datetime(df ['开始时间'])
持续时间列中字段的格式为:
1时14分00秒
没有日期只是格式为hh:mm:ss
的时间表示上述例子中的时间已过去或74分钟。
当我输入:
df.Duration.dtype
返回dtype(' m8 [ns]'),而当我输入
时df.Duration.head(4)
0 00:14:00 1 00:16:00 2 00:03:00 3 00:09:00 名称:持续时间,dtype:timedelta64 [ns]
返回,这似乎表示持续时间的不同dtype。
如何将“持续时间”列中的格式转换为单个整数值分钟(已过去的时间)?我看不到任何可以使用的方法,我写了一个函数但是不知道如何处理hh:mm:ss的输入。这必须是数据分析的常见要求,如果我的最终目标是获得一个表示分钟失效的整数,我是否应该以不同方式转换这些日期和时间?我应该只使用Excel吗?...因为到目前为止我已经花了一天时间解决这个问题, 应该是一个简单的问题需要解决。
**更新: 谢谢!! (Jeff和Dataswede)我在命令中添加了一个列:
df [' Durationendminusstart'] = pd.to_timedelta(df.Duration,unit =' ns')。astype(' timedelta64 [m]')
这似乎给了我想要的持续时间(分钟失效),以便解决大部分问题! 还不清楚的是,为什么根据我的要求,同一列有两种不同的dtypes,哦,现在它并不重要。**