joh*_*ohn 4 python dataframe pandas pandas-groupby
我有一个这样的DataFrame:
Iter ID Time
0 1 A 12:00:00
1 1 B 12:00:01
2 1 C 12:00:01
3 2 B 12:02:00
4 2 A 12:02:02
5 2 C 12:02:06
6 3 C 12:05:01
7 3 B 12:05:00
8 3 A 12:05:05
Run Code Online (Sandbox Code Playgroud)
我想从每次迭代的最小时间戳中获取每个时间戳的偏移量。
例如,此示例的“ Delta”列可以为
Iter ID Time Delta
0 1 A 12:00:00 00:00:00
1 1 B 12:00:01 00:00:01
2 1 C 12:00:01 00:00:01
3 2 B 12:02:00 00:00:00
4 2 A 12:02:02 00:00:02
5 2 C 12:02:06 00:00:06
6 3 C 12:05:01 00:00:01
7 3 B 12:05:00 00:00:00
8 3 A 12:05:05 00:00:05
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是使用Apply,但不确定如何仅对Iter组使用它。
用groupby+ transform+ 执行此操作,min然后从中减去结果Time。
df.Time = pd.to_timedelta(df.Time) # if needed
df['Delta'] = df.Time - df.groupby('Iter').Time.transform('min')
df
Iter ID Time Delta
0 1 A 12:00:00 00:00:00
1 1 B 12:00:01 00:00:01
2 1 C 12:00:01 00:00:01
3 2 B 12:02:00 00:00:00
4 2 A 12:02:02 00:00:02
5 2 C 12:02:06 00:00:06
6 3 C 12:05:01 00:00:01
7 3 B 12:05:00 00:00:00
8 3 A 12:05:05 00:00:05
Run Code Online (Sandbox Code Playgroud)
我曾经pd.to_timedelta转换Time为Timedelta对象的列(支持算术)。如果Time已经是一Timedelta列,请跳过该步骤。
| 归档时间: |
|
| 查看次数: |
215 次 |
| 最近记录: |