假设我有以下 pandas 数据框
df = pd.DataFrame ({'time': ['2014-05-01 18:47:05', '2014-05-01 18:47:06', '2014-05-02 18:47:08', '2014-05-02 18:47:10', '2014-05-02 18:47:11']})
df['time'] = pd.to_datetime(df['time'])
这给出了以下数据框
time
0 2014-05-01 18:47:05
1 2014-05-01 18:47:06
2 2014-05-02 18:47:08
3 2014-05-02 18:47:10
4 2014-05-02 18:47:11
我想添加另一列以秒为单位计算时间列的持续时间,如下所示
time duration
0 2014-05-01 18:47:05 0
1 2014-05-01 18:47:06 1
2 2014-05-02 18:47:08 3
3 2014-05-02 18:47:10 5
4 2014-05-02 18:47:11 6
显然,我可以进行一些循环并手动进行更改,但我怀疑这不是 Python 式的方法。 pandas 中是否有任何功能可以简化此过程?
最佳答案
这将为您提供以秒为单位的总差异(即,也计算日期差异):
df['duration'] = pd.to_timedelta(
df['time'] - df['time'][0]
).astype('timedelta64[s]')
关于python - 计算 Pandas 日期时间列的累计持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49853295/