本文詳解如何使用pandas查看dataframe的重復數據,判斷是否重復,以及如何去重
dataframe數據樣本:
import pandas as pd
df = pd.DataFrame({'name':['蘋果','梨','草莓','蘋果'], 'price':[7,8,9,8], 'cnt':[3,4,5,4]})
name cnt price
0 蘋果 3 7
1 梨 4 8
2 草莓 5 9
3 蘋果 6 8
>> 查看dataframe的重復數據
a = df.groupby('price').count()>1
price = a[a['cnt'] == True].index
repeat_df = df[df['price'].isin(price)]
>>duplicated()方法判斷
1. 判斷dataframe數據某列是否重復
flag = df.price.duplicated()
0 False
1 False
2 False
3 True
Name: price, dtype: bool
flag.any()結果為True (any等於對flag or判斷)
flag.all()結果為False (all等於對flag and判斷)
2. 判斷dataframe數據整行是否重復
flag = df.duplicated()
判斷方法同1
3. 判斷dataframe數據多列數據是否重復(多列組合查)
df.duplicated(subset = ['price','cnt'])
判斷方法同1
>> drop_duplicats()方法去重
1. 對dataframe數據數據去重
DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)
示例:
df.drop_duplicats(subset = ['price','cnt'],keep='last',inplace=True)
drop_duplicats參數說明:
參數subset
subset用來指定特定的列,默認所有列
參數keep
keep可以為first和last,表示是選擇最前一項還是最后一項保留,默認first
參數inplace
inplace是直接在原來數據上修改還是保留一個副本,默認為False