2017-06-14 1 views
2

フォームのデータフレームを考える:ここpandasデータフレーム内の複数の関連付けを含むエントリを削除しますか?

id name 

1 a 
1 b 
2 c 
2 a 
2 d 
3 a 
3 d 
4 a 

a」が3以上(任意)のIDに関連付けられていると言います。だから、結果は次のようになります(3つの以上の団体とのすべてのnamesを削除)

id name 

1 b 
2 c 
2 d 
3 d 

どのように私はそれについて行けば? nameによって

答えて

2
  • グループとわずか3
  • 以下であるものを圧縮名にある名前のみを検索を制限するために圧縮を持つユニークなid
  • フィルターをカウント

u = df.groupby(['name']).id.nunique() 
df[df.name.isin(u.compress(lambda x: x <= 3).index)] 

    id name 
1 1 b 
2 2 c 
4 2 d 
6 3 d 
関連する問題