Pandas 如何使用group by提取包含数据

Pandas 如何使用group by提取包含数据,pandas,Pandas,当我使用df.groupby(['name'])定义上述数据帧时。 我想提取状态为“是”的名称项 在这种情况下,A、B、C是要提取的目标数据 如何提取该数据?您可以通过以下方式提取值并再次过滤: 另一种解决方案用于测试,每组至少有一个True: a = df.loc[df['state'] == 'yes', 'name'].unique() print (a) ['A' 'B' 'C'] df1 = df[df['name'].isin(a)] print (df1) id name

当我使用df.groupby(['name'])定义上述数据帧时。 我想提取状态为“是”的名称项

在这种情况下,A、B、C是要提取的目标数据

如何提取该数据?

您可以通过以下方式提取值并再次过滤:

另一种解决方案用于测试,每组至少有一个
True

a = df.loc[df['state'] == 'yes', 'name'].unique()
print (a)
['A' 'B' 'C']

df1 = df[df['name'].isin(a)]
print (df1)
   id name state
0   1    A   yes
1   2    B   yes
2   3    B    no
3   4    C   yes
4   5    C   yes
a = df.loc[df['state'] == 'yes', 'name'].unique()
print (a)
['A' 'B' 'C']

df1 = df[df['name'].isin(a)]
print (df1)
   id name state
0   1    A   yes
1   2    B   yes
2   3    B    no
3   4    C   yes
4   5    C   yes
df1 = df[(df['state'] == 'yes').groupby(df['name']).transform('any')]
print (df1)
   id name state
0   1    A   yes
1   2    B   yes
2   3    B    no
3   4    C   yes
4   5    C   yes