从 pandas 中的每个其他时间戳中减去每个组的最小时间戳
Subtract smallest timestamp per group from every other timestamp in pandas
我有这样一个 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
我想获得每个时间戳与该迭代的最小时间戳的偏移量。
例如,此示例的 "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
我的第一个想法是使用 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
我已经使用 pd.to_timedelta
将 Time
转换为 Timedelta
对象的列(支持算术)。如果 Time
已经是 Timedelta
列,请跳过该步骤。
我有这样一个 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
我想获得每个时间戳与该迭代的最小时间戳的偏移量。
例如,此示例的 "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
我的第一个想法是使用 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
我已经使用 pd.to_timedelta
将 Time
转换为 Timedelta
对象的列(支持算术)。如果 Time
已经是 Timedelta
列,请跳过该步骤。