[英]Pandas Dataframe: Find unique value from one column which has the largest number of unique values in another column
[英]How to find column values which contains unique value in another column from same dataframe?
我有一個數據框:
Id name value
0 1 aaa x
1 2 aaa y
2 3 aaa z
3 4 ddd t
4 5 ddd t
5 6 fff j
6 7 ggg m
7 8 ggg n
我只想找到那些名稱重復的行,並且這些重復行的值不同。
預期輸出:
Id name value
0 1 aaa x
1 2 aaa y
2 3 aaa z
3 7 ggg m
4 8 ggg n
我正在嘗試使用groupby :
df.groupby('name')
這個 groupby 函數對這個任務有用嗎? 我怎樣才能實現我想要的?
這行代碼將按名稱計算值的數量:
df.groupby('name')['value'].transform(pd.Series.nunique)
Out[8]:
0 3
1 3
2 3
3 1
4 1
5 1
6 2
7 2
請注意,我在groupby
對象上使用.transform(pd.Series.nunique)
而不是簡單的.nunique()
。 這樣,結果將與原始數據幀的長度相同,您可以直接使用它進行過濾:
df[df.groupby('name')['value'].transform(pd.Series.nunique) > 1]
Out[9]:
Id name value
0 1 aaa x
1 2 aaa y
2 3 aaa z
6 7 ggg m
7 8 ggg n
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.