【发布时间】:2020-02-25 23:36:42
【问题描述】:
我有一个包含 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]
【问题讨论】:
标签: python-3.x pandas pandas-groupby