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