我有一个数据框:
id value
a1 0
a1 1
a1 2
a1 3
a2 0
a2 1
a3 0
a3 1
a3 2
a3 3
我想过滤 id,只留下那些值高于 3 的 id。因此,在此示例中,必须删除 id a2,因为它只有值 0 和 1。所以期望的结果是:
id value
a1 0
a1 1
a1 2
a1 3
a3 0
a3 1
a3 2
a3 3
a3 4
a3 5
如何在 pandas 中做到这一点?
最佳答案
已更新。
按 ID 分组并查找其最大值。查找最大值等于或大于 3 的 ID:
keep = df.groupby('id')['value'].max() >= 3
选择 ID 匹配的行:
df[df['id'].isin(keep[keep].index)]
关于python - 如何通过列中的分组值过滤数据框中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69260823/