pandas数据处理之取出重复数据实践
作者:星越华夏
本文介绍了使用Pandas库处理重复数据的方法,方法一通过将duplicate_bool设为True,保留重复数据;方法二通过两次drop_duplicates操作,得到重复数据
pandas取出重复数据
平常我们用pandas做重复数据处理时,常常调用到drop_duplicates方法来去除重。
现在我不想完全去除重复,而是把重复数据输出,现有数据如下所示:
dic = {'序号':[2,3,4,5,6,7,8,9,10,11,12,13,14,15],'地市缩写': ['LF', 'CZ', 'HS', 'ZJ', 'TS', 'HD', '广阳', 'CD', 'QH', 'XT', 'XA', 'BD', 'SJ', '栾城'],
'地市': ['廊坊', '沧州', '衡水', '张家口', '唐山', '邯郸', '廊坊', '承德', '秦皇岛', '邢台', '雄安', '保定',
'石家庄', '石家庄']}
p_city = pd.DataFrame(dic)
print(p_city )输出:

方法一
重复数据保留一个,duplicate_bool输出的是bool类型值,通过判断bool==True,取出重复行。
duplicate_bool = p_city.duplicated(subset=['地市'], keep='first') print(duplicate_bool ) repeat =p_city.loc[duplicate_bool == True] print(repeat)
输出:

方法二
采用drop_duplicates对数据去两次重,一次将重复数据全部去除(keep=False),一次将重复数据保留一个(keep=last/first),将两个去重后的数据做差集,取出重复行。
# 重复数据全部去除 data1 = p_city.drop_duplicates(subset=['地市'], keep=False) print(data1)
输出:

# 重复数据保留一个 data2 = p_city.drop_duplicates(subset=['地市'], keep='last') print(data2)
输出:

# 做差集,取出重复行 data1 = p_city.drop_duplicates(subset=['地市'], keep=False) data2 = p_city.drop_duplicates(subset=['地市'], keep='last') repeat = pd.concat([data2,data1]).drop_duplicates(keep=False) print(repeat)
输出:

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
