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

generating new column with time delta within other columns in pandas

我有一个如下所示的数据框:

    0         1       2       .... 200  
   12:30:45   78      78            89
   12:38:50   98      98            99
   12:44:55   178    178            189

此处 column: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