【发布时间】:2020-04-12 10:29:55
【问题描述】:
我正在尝试根据以下条件删除 pandas 中的一组分组行:
如果一个组(按 col1 分组)在 col2 中有超过 2 个值 'c',则删除整个组。
我的样子是这样的
col1 col2
0 A 10:10
1 A 20:05
2 A c
3 A 00:10
4 B 04:15
2 B c
3 B c
4 B 13:40
我正在努力到达这里:
col1 col2
0 A 10:10
1 A 20:05
2 A c
3 A 00:10
通常我会为其他非常相似的数据框执行此操作(并且它有效):
df = df.groupby('col1').filter(lambda x: x["col2"].value_counts()[['c']].sum() < 2)
但是对于这个不起作用,我收到此错误:
KeyError: "None of [Index(['c'], dtype='object')] are in the [index]"
有人知道我该怎么做吗?
谢谢!
【问题讨论】:
标签: python pandas dataframe pandas-groupby