![](/img/trans.png)
[英]Pandas, filter dataframe based on unique values in one column and grouby in another
[英]How to pandas groupby one column and filter dataframe based on the minimum unique values of another column?
我有一個看起來像這樣的數據框:
CP AID type
1 1 b
1 2 b
1 3 a
2 4 a
2 4 b
3 5 b
3 6 a
3 7 b
我想對CP列進行分組和過濾,以便它僅返回CP從AID列中至少具有3個唯一“對”的行。
結果應如下所示:
CP AID type
1 1 b
1 2 b
1 3 a
3 5 b
3 6 a
3 7 b
您可以結合使用groupby
和unique
:
m = df.groupby('CP').AID.transform('unique').str.len() >= 3
print(df[m])
CP AID type
0 1 1 b
1 1 2 b
2 1 3 a
5 3 5 b
6 3 6 a
7 3 7 b
或正如RafaelC在評論中提到的那樣:
m = df.groupby('CP').AID.transform('nunique').ge(3)
print(df[m])
CP AID type
0 1 1 b
1 1 2 b
2 1 3 a
5 3 5 b
6 3 6 a
7 3 7 b
您可以這樣做:
count = df1[['CP', 'AID']].groupby('CP').count().reset_index()
df1 = df1[df1['CP'].isin(count.loc[count['AID'] == 3,'CP'].values.tolist())]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.