1. 程式人生 > >pandas去除重複值drop_duplicates問題

pandas去除重複值drop_duplicates問題

win10電腦環境下執行程式碼如下:

# 重複值處理
import pandas as pd # 匯入pandas庫
# 生成重複資料
data1 = ['a', 3]
data2 = ['b', 2]
data3 = ['a', 3]
data4 = ['c', 2]
df = pd.DataFrame([data1, data2, data3, data4], columns=['col1', 'col2'])
print (df)

# 判斷重複資料
isDuplicated = df.duplicated() # 判斷重複資料記錄
print (isDuplicated) # 列印輸出
# 刪除重複值
new_df1 = df.drop_duplicates() # 刪除資料記錄中所有列值相同的記錄
new_df2 = df.drop_duplicates(['col1']) # 刪除資料記錄中col1值相同的記錄
new_df3 = df.drop_duplicates(['col2']) # 刪除資料記錄中col2值相同的記錄
new_df4 = df.drop_duplicates(['col1', 'col2']) # 刪除資料記錄中指定列(col1/col2)值相同的記錄
print (new_df1) # 列印輸出
print (new_df2) # 列印輸出
print (new_df3) # 列印輸出
print (new_df4) # 列印輸出

正常的輸出結果應該是:

 col1  clo2
0    a     3
1    b     2
2    c     2

3    a     3

0    False
1    False
2    False
3     True

dtype: bool

col1  clo2
0    a     3
1    b     2

3    c     2

col1  clo2
0    a     3
1    b     2

3    c     2

col1  clo2
0    a     3
1    b     2

col1  clo2
0    a     3
1    b     2

3    a     3

但是我執行的時候出現的了一個錯誤,很是費解:

Traceback (most recent call last):
  File "E:/Sublime Text/Sublime Text 3 中文版/01/重複值.py", line 22, in <module>
    new_df3 = df.drop_duplicates(['col2'])  # 刪除資料記錄中col2值相同的記錄
  File "E:\PyCharm 2018.1.1\工作除錯檔案\venv\lib\site-packages\pandas\core\frame.py", line 4328, in drop_duplicates
    duplicated = self.duplicated(subset, keep=keep)
  File "E:\PyCharm 2018.1.1\工作除錯檔案\venv\lib\site-packages\pandas\core\frame.py", line 4378, in duplicated
    raise KeyError(diff)

KeyError: Index(['col2'], dtype='object')

關鍵字錯誤,索引的問題。