DataFrame.drop_duplicates
(subset=None, keep='first', inplace=False)
参数解释:
- subset: 列名,默认所有的列
- keep: 是否保留{‘first’, ‘last’, False},keep= 'first' 表示去重时每组重复数据保留第一条数据,其余数据丢弃; keep='last' 表示去重时每组重复数据保留最后一条数据,其余数据丢弃;keep=False 表示去重时每组重复数据全部丢弃,不保留
- inplace: 是否替换{False, True},inplace=False表示去重之后不覆盖原表格数据,inplace=True表示去重之后原表格数据被覆盖
一、仅去除重复项
下面给出部分代码示例,可自行粘贴运行对比,推荐spyder / jupyter notebook, 方便查看数据结构。
# A列中1重复两次(index=0/2)
In [6]: data
Out[6]:
A B C
0 1 1 1
1 2 2 2
2 1 3 3
3 3 4 4
# A列去重,两条重复数据保留第一条(index=0),第二条数据丢弃(index=2)。
In [7]: data.drop_duplicates(subset='A',keep='first',inplace=False)
Out[7]:
A B C
0 1 1 1
1 2 2 2
3 3 4 4
# A列去重,两条重复数据保留最后一条(index=2),第一条数据丢弃(index=0)。
In [7]: data.drop_duplicates(subset='A',keep='first',inplace=False)
Out[7]:
A B C
1 2 2 2
2 1 3 3
3 3 4 4
二、提取重复项
提取重复项?两次去除重复项即可,思路如下。
#第一步: 去重,将重复数据丢弃
In [10]: data1=data.drop_duplicates(subset='A',keep=False,inplace=False)
#第二步:去重,保留一组重复数据
In [11]: data2=data.drop_duplicates(subset='A',keep='first',inplace=False)
#第三步:将data1与data2合并后去重且丢弃重复数据
#(data1与data2合并后, 此时原表里面非重复数据变成了两份,去重丢弃这些重复数据之后,剩下的数据即为所求)
In [12]:(data2).drop_duplicates(subset='A',keep=False,inplace=False)
Out[12]:
A B C
0 1 1 1