[英]finding first instance of condition in all the groups using groupby in pandas
[英]finding groups that meet a condition in pandas groupby
這是我的數據幀:
df = pd.DataFrame({'a':list('xxxyyzz'), 'b':[10,20,30,5,3,1,2]})
我把他們分組:
groups = df.groupby('a')
我想打印至少有一個b
超過20的組。在這種情況下,我想打印x
。 這是我期望的結果:
x
a b
0 x 10
1 x 20
2 x 30
通過比較值Series.gt
,通過分組a
柱狀Series
- df['a']
並使用GroupBy.transform
與GroupBy.any
用於測試至少一個True
每基團:
df1 = df[df['b'].gt(20).groupby(df['a']).transform('any')]
print (df1)
a b
0 x 10
1 x 20
2 x 30
不需要groupby
,只是做isin
df[df.a.isin(df.loc[df.b>20,'a'])]
Out[996]:
a b
0 x 10
1 x 20
2 x 30
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.