在 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
我有一个如下所示的数据框:
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