在panda中的其他列中生成具有时间增量的新列



我有一个数据帧,如下所示:

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

相关内容

最新更新