所以,我有以下数据框:
id value
0 a 1
1 a 1
2 a 2
3 b 3
4 b 3
例如,对于ID为'a'的行,最小值为1;对于ID为'b'的行,最小值为3,因此不会删除任何行。
输出:
id value
0 a 1
1 a 1
2 b 3
3 b 3
到目前为止,我仅对具有相同ID的行进行了分组,并找到了它们的最小值,但是找不到删除所有预期行的方法。 我使用了以下命令:
min_values = df.loc[df.groupby(['id'])['value'].idxmin()]['value']
答案 0 :(得分:2)
使用transform
(idxmin
:只会返回最小值的第一个索引,如果您重复的话,则不会返回所有索引)
df[df.value==df.groupby('id').value.transform('min')]
Out[257]:
id value
0 a 1
1 a 1
3 b 3
4 b 3