删除groupby中不包含元素的组(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的filter分组:

df.groupby('name').filter(lambda g: any(g.nickname == 'X')) 
#       name   nickname
# 0        A          X
# 1        A          Y
# 2        B          X
# 3        B          Z

最新更新