[英]How to append rows to a Pandas dataframe, and have it turn multiple overlapping cells (with the same index) into a single value, instead of a series?
[英]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.