删除groupby中不包含元素的组(Python)
让数据帧如下所示:删除groupby中不包含元素的组(Python),python,pandas,Python,Pandas,让数据帧如下所示: import pandas as pd df = pd.DataFrame({"name":["A", "A", "B" ,"B", "C", "C"], "nickname":["X","Y","X","Z","Y", "Y"]} 如何将df分组并删除不包含至少一个“X”的组(C) 谢谢您可以使用pandas中的分组依据过滤器: df.groupby('name').filter(lambda g: any(g.nickname =
import pandas as pd
df = pd.DataFrame({"name":["A", "A", "B" ,"B", "C", "C"],
"nickname":["X","Y","X","Z","Y", "Y"]}
如何将df分组并删除不包含至少一个“X”的组(C)
谢谢您可以使用pandas中的分组依据
过滤器
:
df.groupby('name').filter(lambda g: any(g.nickname == 'X'))
# name nickname
# 0 A X
# 1 A Y
# 2 B X
# 3 B Z
谢谢你。我不知道“any”函数如何删除组,如果它只包含答案的后续注释中提到的XA,
filter
不是groupby对象,那么如果要筛选然后拥有这些组,则需要在上述命令末尾添加另一个groupby
。例如,df.groupby('name').filter(lambda g:any(g.昵称='X')).groupby('name')
同样,在我的情况下,我不得不将其重新构造成这样才能工作:df.groupby('name').filter(lambda g:(g.昵称='X').any())
对我来说似乎应该是一样的,可能是一个导入问题,但这留给后面的人。