Python 使用Pandas删除值高于具有相同id的所有行的最小值的行

Python 使用Pandas删除值高于具有相同id的所有行的最小值的行,python,excel,pandas,dataframe,pandas-groupby,Python,Excel,Pandas,Dataframe,Pandas Groupby,因此,我有以下数据帧: 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

因此,我有以下数据帧:

        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']

使用
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