簡體   English   中英

如何在同一數據框中的另一列中查找包含唯一值的列值?

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

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