函数pandas.DataFrame.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index= False)
主要用来去除重复项,返回DataFrame类型的数据。
有几个参数要注意一下
subset:默认为None
去除重复项时要考虑的标签,当subset=None时所有标签都相同才认为是重复项
keep: {‘first’, ‘last’, False},默认为‘first’
keep=‘first’时保留该标签第一次出现时的样本,之后重复出现的全部丢弃。
keep=‘last’表示保留该标签最后一次出现的样本,
keep=False时该标签重复的样本全部丢弃
inplace:bool,默认为False
inplace=False时返回去除重复项后的DataFrame,原来的DataFrame不改变。
inplace=True时返回空值,原来DataFrame被改变
ignore_index:bool,默认为False
ignore_index=False时,丢弃重复值之后的DataFrame的index不改变
ignore_index=True时,丢弃重复值之后的DataFrame的index重新变为0, 1, …, n-1
实验结果
>>> import pandas as pd
>>> df = pd.DataFrame({
... 'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
... 'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
... 'rating': [4, 4, 3.5, 15, 5]
... })
>>> df
brand style rating
0 Yum Yum cup 4.0
1 Yum Yum cup 4.0
2 Indomie cup 3.5
3 Indomie pack 15.0
4 Indomie pack 5.0
>>> df.drop_duplicates()
brand style rating
0 Yum Yum cup 4.0
2 Indomie cup 3.5
3 Indomie pack 15.0
4 Indomie pack 5.0
>>> df.drop_duplicates(subset=['brand'])
brand style rating
0 Yum Yum cup 4.0
2 Indomie cup 3.5
>>> df.drop_duplicates(subset=['style'])
brand style rating
0 Yum Yum cup 4.0
3 Indomie pack 15.0
>>> df.drop_duplicates(subset=['brand'],keep='first')
brand style rating
0 Yum Yum cup 4.0
2 Indomie cup 3.5
>>> df.drop_duplicates(subset=['brand'],keep='last')
brand style rating
1 Yum Yum cup 4.0
4 Indomie pack 5.0
>>> df.drop_duplicates(subset=['brand'],keep=False)
Empty DataFrame
Columns: [brand, style, rating]
Index: []
>>> df_new=df.drop_duplicates(subset=['brand'],inplace=True)
>>> df_new
>>> print(df_new)
None
>>> df
brand style rating
0 Yum Yum cup 4.0
2 Indomie cup 3.5
>>> df.drop_duplicates(ignore_index=True)
brand style rating
0 Yum Yum cup 4.0
1 Indomie cup 3.5