我在 Python Pandas 中有 DataFrame,如下所示:
ID | COL1| COL2 | COL3
----------|------|------
123 | XXX | 0 | 1
123 | XXX | 1 | 1
444 | ABC | 1 | 1
444 | ABC | 1 | 1
555 | PPP | 0 | 0
我需要以這種方式在 DF 上方洗掉重復項:
- 如果在 COL2 或 COL3 中至少有一次“1”,那么這些列中的 ID 應該是 1(不管他在提到的列中有多頻繁地出現 0)
- 其余列仍應在輸出中
- 在 COL1 中,每個 ID 沒有重復項
因此,我需要像下面這樣的輸出(我有更多列,所以在輸出中我不僅需要 ID、COL2、COL3,還需要 ID、COL1、COL2、COL3)
ID | COL1| COL2 | COL3
----|-----|------|-----
123 | XXX | 1 | 1
444 | ABC | 1 | 1
555 | PPP | 0 | 0
我怎樣才能在 Python Pandas 中做到這一點?
uj5u.com熱心網友回復:
使用groupby.max:
out = df.groupby(['ID', 'COL1'], as_index=False).max()
輸出:
ID COL1 COL2 COL3
0 123 XXX 1 1
1 444 ABC 1 1
2 555 PPP 0 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/511865.html
