我正在嘗試洗掉所有重復的行。我只想要唯一的行。我已經試過keep = False了引數drop_duplicates()與`子集= [訂單ID,專案代碼],它只是沒有做正確的事。
假設我的資料框看起來像這樣
|ORDER ID | ITEM CODE |
123 XXX
123 YYY
123 YYY
456 XXX
456 XXX
456 XXX
789 XXX
000 YYY
我希望它看起來像這樣:
|ORDER ID | ITEM CODE |
123 XXX
789 XXX
000 YYY
如您所見,子集將同時是訂單 ID 和商品代碼列,理想情況下我們會丟失第 2-6 行。(實際資料集有更多列。)
uj5u.com熱心網友回復:
不確定你的問題是什么。作業正常。
import pandas as pd
data = [[123, 'XXX', 11],
[123, 'YYY', 22],
[123, 'YYY', 33],
[456, 'XXX', 44],
[456, 'XXX', 55],
[456, 'XXX', 66],
[789, 'XXX',77],
[000, 'YYY',88]]
columns = ['ORDER ID','ITEM CODE','extra column']
df = pd.DataFrame(data, columns=columns)
df = df.drop_duplicates(subset = ['ORDER ID','ITEM CODE'], keep=False)
輸出:
前
print(df)
ORDER ID ITEM CODE extra column
0 123 XXX 11
1 123 YYY 22
2 123 YYY 33
3 456 XXX 44
4 456 XXX 55
5 456 XXX 66
6 789 XXX 77
7 0 YYY 88
后
print(df)
ORDER ID ITEM CODE extra column
0 123 XXX 11
6 789 XXX 77
7 0 YYY 88
uj5u.com熱心網友回復:
嘗試修改您的子集以ORDER ID僅包含:
df.drop_duplicated(subset=['ORDER ID'])
uj5u.com熱心網友回復:
您很可能只是沒有正確設定資料框。你可能正在做
df.drop_duplicates()
但這將無法覆寫您以前的值。相反,你應該做
df = df.drop_duplicates()
如果您無法讓 drop_duplicates 作業,您可以使用 numpy.unique 作為解決方法。
df['ORDER_ID'] = np.unique(df['ORDER_ID'])
df['ITEM_CODE'] = np.unique(df['ITEM_CODE'])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/353850.html
下一篇:為r中的資料幀變數賦值和獲取
