Pandas 删除重复行– drop_duplicates()函数
时间:2020-02-23 14:42:07 来源:igfitidea点击:
Pandas drop_duplicates()函数语法
Pandas drop_duplicates()函数从DataFrame中删除重复的行。
其语法为:
drop_duplicates(self, subset=None, keep="first", inplace=False)
子集:考虑用于识别重复行的列标签或者标签序列。
默认情况下,所有列均用于查找重复的行。保留:允许的值为{" first"," last",False),默认为" first"。
如果为"第一",则删除除第一行以外的重复行。
如果为"最后",则删除除最后一行以外的重复行。
如果为False,则删除所有重复的行。inplace:如果为True,则更改源DataFrame并返回None。
默认情况下,源DataFrame保持不变,并返回一个新的DataFrame实例。
Pandas 掉落重复行示例
让我们看一些从DataFrame对象删除重复行的示例。
1.删除重复的行以保持第一个
当不传递任何参数时,这是默认行为。
import pandas as pd d1 = {'A': [1, 1, 1, 2], 'B': [2, 2, 2, 3], 'C': [3, 3, 4, 5]} source_df = pd.DataFrame(d1) print('Source DataFrame:\n', source_df) # keep first duplicate row result_df = source_df.drop_duplicates() print('Result DataFrame:\n', result_df)
输出:
Source DataFrame: A B C 0 1 2 3 1 1 2 3 2 1 2 4 3 2 3 5 Result DataFrame: A B C 0 1 2 3 2 1 2 4 3 2 3 5
源DataFrame行0和1是重复的。
保留第一个匹配项,其余重复项被删除。
2.删除重复项并保留最后一行
result_df = source_df.drop_duplicates(keep='last') print('Result DataFrame:\n', result_df)
输出:
Result DataFrame: A B C 1 1 2 3 2 1 2 4 3 2 3 5
索引" 0"被删除,最后重复的行" 1"保留在输出中。
3.从DataFrame删除所有重复的行
result_df = source_df.drop_duplicates(keep=False) print('Result DataFrame:\n', result_df)
输出:
Result DataFrame: A B C 2 1 2 4 3 2 3 5
重复的行" 0"和" 1"都从结果DataFrame中删除。
4.根据特定的列识别重复的行
import pandas as pd d1 = {'A': [1, 1, 1, 2], 'B': [2, 2, 2, 3], 'C': [3, 3, 4, 5]} source_df = pd.DataFrame(d1) print('Source DataFrame:\n', source_df) result_df = source_df.drop_duplicates(subset=['A', 'B']) print('Result DataFrame:\n', result_df)
输出:
Source DataFrame: A B C 0 1 2 3 1 1 2 3 2 1 2 4 3 2 3 5 Result DataFrame: A B C 0 1 2 3 3 2 3 5
" A"和" B"列用于标识重复的行。
因此,行0、1和2是重复的。
因此,从输出中删除了行1和2。
5.删除适当的重复行
source_df.drop_duplicates(inplace=True) print(source_df)
输出:
A B C 0 1 2 3 2 1 2 4 3 2 3 5