删除值高于具有相同id的所有行的最小值的行

2024-04-24 10:37:55 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我有以下数据帧:

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

Tags: 数据方法命令iddfvalueminloc
1条回答
网友
1楼 · 发布于 2024-04-24 10:37:55

使用transformidxmin:将只返回最小值的第一个索引,在您的情况下,您有重复项,因此它不会返回所有索引)

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

相关问题 更多 >