我一直在尝试使用 pandas dataframe 减去我读入 python 的列之间的日期和时间。我写的代码如下:
Time = df['t'] - df['t'].shift(1) + df['t']
这会导致错误消息。我的输入和预期输出如下所述
Input data:
t =
9:47:00
9:48:00
9:49:00
9:50:00
9:51:00
9:52:00
9:53:00
9:54:00
我希望代码能够生成输出数据(从零开始的累积小时。
0
0.016666667
0.033333333
0.05
0.066666667
0.083333333
0.1
我还尝试使用 datetime.strptime('t',"%H:%M:%S.%f")
将其转换为字符串,但仍然收到错误。
如有任何建议,我们将不胜感激。
最佳答案
与克里斯的解决方案类似。您应该从一开始就使用 timedelta
以获得更简单的解决方案。
v = pd.to_timedelta(df['t'])
((v - v.shift())).dt.total_seconds().cumsum().div(3600).fillna(0)
0 0.000000
1 0.016667
2 0.033333
3 0.050000
4 0.066667
5 0.083333
6 0.100000
7 0.116667
Name: t, dtype: float64
关于python - 减去 Pandas 列中的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52105810/