去除重復數據是一項常見操作,Pandas中,可以使用drop_duplicates
方法。
電影數據集沒有重復的行,我們來制造一些重復行。
temp_df = movies_df.append(movies_df)
temp_df.shape
輸出
(2000, 11)
append()
將返回一個副本,不影響原始數據DataFrame。使用.shape
屬性查看形狀,可以看到數據增加了一倍。
接下來刪除重復數據:
temp_df2 = temp_df.drop_duplicates()
temp_df2.shape
輸出
(1000, 11)
與append()
一樣,此處drop_duplicate()
方法也將返回副本。
如果想直接在原數據上修改,可以指定參數:inplace=True
,Pandas的許多方法都可使用inplace
參數。
temp_df.drop_duplicates(inplace=True)
temp_df
被直接修改,里面的重復項被去除。
drop_duplicate()
的另一個重要參數是keep
,它有三個可能的選項:
first
: (默認)刪除重復項,但保留的是首次出現的項。last
: 刪除重復項,但保留的是最后出現的項。False
: 刪除重復項,不保留任何重復項。
前面的示例中沒有定義keep
參數,所以默認值為first
。這意味着如果兩行是相同的,Pandas將刪除第二行保留第一行。使用last
效果相反: 第一行被刪除保留第二行。False
值會刪除所有的重復項,如果兩行是相同的,這兩行都將被刪除。
temp_df = movies_df.append(movies_df) # make a new copy temp_df.drop_duplicates(inplace=True, keep=False) temp_df.shape
輸出
(0, 11)
因為所有行都是重復的,所以keep=False
將刪除所有行。