gpt4 book ai didi

python-3.x - 查找匹配多个列条件的行

转载 作者:行者123 更新时间:2023-12-01 03:00:23 25 4
gpt4 key购买 nike

我有一个 2M 行的数据框,格式如下:

ID   Number
1 30
1 40
1 60
2 10
2 30
3 60

我需要选择编号为 30 和 40 的 ID(在本例中,输出应为 1)。

我知道我们可以创建一个只有数字 30 和 40 的新 DF,然后使用 groupby 来查看哪些 ID 的计数大于 1。但是有没有一种方法可以在 groupby 语句中同时执行这两项操作?

我的代码:

a=df[(df['Number']==30) | (df['Number']==40) ]
b=a.groupby('ID')['Number'].nunique().to_frame(name='tt').reset_index()
b[b['tt'] > 1]

最佳答案

使用 groupby filterissubset

s = {30, 40}
df.groupby('ID').filter(lambda x: s.issubset(set(x.Number)))

Out[158]:
ID Number
0 1 30
1 1 40
2 1 60

关于python-3.x - 查找匹配多个列条件的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58629293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com