【发布时间】:2020-03-26 22:28:15
【问题描述】:
我需要计算数据框中两个特定行之间的时间差。
如果Payload 列是[1]->[0],那么如果设置为[0]->[1],我需要计算该行与其后行之间的时间差
这是我的代码:
import pandas as pd
df= pd.DataFrame({'Time':['12/01/2019 17:01:10', '12/01/2019 13:23:00', '12/01/2019 11:23:00', '12/01/2019 10:01:10','12/01/2019 09:01:10','12/01/2019 09:01:10'],
'Payload':['[0]->[1]', '[0]->[1]','[1]->[0]','[0]->[1]','[1]->[0]','[0]->[1]']})
df.Time = pd.to_datetime(df.Time, format='%d/%m/%Y %H:%M:%S')
print('df\n',df)
for i in range (len(df)-1):
if ((df['Payload'].iloc[i]=='[1]->[0]') & (df['Payload'].iloc[i+1]=='[0]->[1]')):
df['diff']=df['Time'].iloc[i+1] - df['Time'].iloc[i]
print(df['diff'])
必须在这两行之间进行计算:
2 2019-01-12 11:23:00 [1]->[0]
3 2019-01-12 10:01:10 [0]->[1]
这两行:
4 2019-01-12 09:01:10 [1]->[0]
5 2019-01-12 09:01:10 [0]->[1]
但我的代码没有这样做
【问题讨论】:
标签: python-3.x pandas time