簡體   English   中英

Pandas dataframe - 檢查多行是否具有相同的值

[英]Pandas dataframe - check if multiple rows have the same value

我有一個 DataFrame,它看起來像這樣:

參考 價值
字符串 1 1個
字符串 2 0
字符串 3 -1
字符串 2 1個
字符串 1 1個
字符串 3 0

每個引用可以在 dataframe 中出現一次、兩次或三次; 並且可以關聯相同或不同的值。 我想創建另一個 dataframe,它告訴我,對於每個參考,它們是否都具有相同的值。 所以對於上面的例子,我想得到這樣的東西:

參考 價值
字符串 1 是的
字符串 2
字符串 3

(我以是和否為例,但它可以是 1/0 或其他任何東西)

我怎樣才能做到這一點?

我最初的想法是使用.groupby但后來我沒有找到任何類型的聚合可以幫助我......

您可以使用groupby + nunique來計算每個引用的唯一值。 然后使用np.where根據唯一值的數量是否為 1 來分配是/否值:

out = df.groupby('Reference', as_index=False)['Value'].nunique()
out['Value'] = np.where(out['Value'].eq(1), 'Yes', 'No')

Output:

  Reference Value
0   String1   Yes
1   String2    No
2   String3    No

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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