python - 减去 Pandas 列中的时间

标签 python pandas

我一直在尝试使用 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/

相关文章:

python - 当训练时使用的 keras 版本未知时,如何加载版本不匹配错误的 Keras 模型

Python - 在数据框中创建包含年份和月份的新列

python Pandas : Create new rows from values of a List Column

python - 从数据帧列中删除不连续的值

python - opencv python whie加载视频时出错

python - 如何在单击(python 包)中为一个选项创建短选项和长选项?

python - 将 Matplotlib 中的多个 .png 图形输出到 Python 3.4 中的一个 zip 文件

python - 关于MySQL "SELECT *"的内存问题

python 使用 groupby 滚动累积返回

python - 如果 header=None,则使用 pandas 确定 csv 文件中的标题