簡體   English   中英

熊貓如何對一個列進行分組並根據另一列的最小唯一值過濾數據框?

[英]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

您可以結合使用groupbyunique

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM