我想添加一个新列Datadiff
,该列计算数据帧Data
的相邻df
行中的差异:
Id Timestamp Data Timediff Datadiff
696 697 2013-08-12 10:35:47.287 30.0 0.510 -1.0
885 886 2013-08-12 10:37:35.850 30.5 -0.203 5.0
886 887 2013-08-12 10:37:36.373 31.5 0.523 1.0
917 918 2013-08-12 10:37:45.137 31.5 -0.510 34.5
1018 1019 2013-08-12 11:17:13.570 25.0 0.000 0.0
1357 1358 2013-08-12 12:42:21.280 25.0 -0.347 28.0
使用代码:
df['Timediff']= (df['Timestamp']-df['Timestamp'].shift(1)).dt.total_seconds()
df['Datadiff']= (df['Data']-df['Data'].shift(1))
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
df = df[df['Data']>0]
df.head(500)
但是Datadiff
列看起来很奇怪。 shift(1)如何工作?怎么了?
对于我来说,工作正常,通过差值比较返回相同的输出:
您需要重置索引,然后应用diff()运算符: