我有一个数据帧,如下所示:
0 1 2 .... 200
12:30:45 78 78 89
12:38:50 98 98 99
12:44:55 178 178 189
此处,第0列包含时间戳,第1:200列包含值。我想创建一个新列:"difference",它将在该行和前一行之间产生时间差。第一行中的值可以是0。因此,我得到的数据帧应该看起来像:
0 1 2 .... 200 difference
12:30:45 78 78 89 0
12:30:51 98 98 99 6
12:30:55 178 178 189 4
您可以将列0转换为datetime
,然后使用shift
+sub
来获得差异:
df[0] = pd.to_datetime(df[0])
df['difference'] = df[0].sub(df[0].shift(fill_value=df.at[0,0])).dt.total_seconds()
输出:
0 1 2 200 difference
0 2022-03-31 12:30:45 78 78 89 0.0
1 2022-03-31 12:38:50 98 98 99 485.0
2 2022-03-31 12:44:55 178 178 189 365.0