查看原文
其他

Python中实现Excel的重复值提取

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:王碧琪,中南财经政法大学金融学院

本文编辑:任   哲

技术总编:张馨月

爬虫俱乐部云端课程

  爬虫俱乐部于2020年暑期在线上举办的Stata与Python编程技术训练营和Stata数据分析法律与制度专题训练营已经圆满结束啦~应广大学员需求,我们的课程现已在腾讯课堂全面上线,且继续提供答疑服务。现在关注公众号并在朋友圈转发推文《来腾讯课堂学Stata和Python啦》或《8月Stata数据分析法律与制度专场来啦!》,即可获得600元课程优惠券,集赞50个再领200元课程优惠券!(截图发至本公众号后台领取)原价2400元的课程,现在只要1600元

最近,小编的朋友在处理excel数据时遇到了这样的问题:从两列数据中挑出相同的数据。于是,他开始了百度,先使用条件格式标识出不同的颜色,再进行筛选。本来开开心心的感叹:“Excel真强大啊,什么都能干。”可是好景不长,在九千多条数据应用了条件格式之后,Excel已经卡的不能动弹。机智的小编提出用Python来尝试一下,发现这就是取集合的交集啊!下面,让我们开始吧~


一、准备工作
1数据概览Excel文件为"d: /place.xlsx",包含两列数据,处理目的是:筛选出这两列数据的重复项并提取出唯一值。2数据类型——可变集合(set)set() 函数是Python中的内置函数,它创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。各集合类型具体如下:
集合类型函数符号韦恩图
交集a.intersection(b)a&b
并集a.union(b)a|b
差集a.difference(b)a-b
对称差集a.symmetric_difference(b)a^b

二、程序处理
1读入excel
1import pandas as pd #导入pandas库
2infile='d: /place.xlsx' #读入文件
3outfile='d: /temp.csv' #导出文件
4d1=pd.read_excel(infile) #读入excel文件
5print(d1)
6print(d1.columns) #显示列名
结果显示,表中包含两列数据,列名为"place"、"place2"共有2列*100行数据。
2筛选并去重set()是一种不可重复的集合类型,可以用来去重。因为数据中包含重复值,所以这里都用set来处理。
1set1=set(d1['place']) 
2set2=set(d1['place2'])
3print(len(set1))
4print(len(set2))
结果显示:
每列包含100条数据,而set去重之后长度小于100,说明每一列数据中包含若干重复值。接下来就是取交集了。可以使用函数或者符号来实现。
1set3=set1&set2
2print(set3)
3print(len(set3))
结果显示:
大功告成了,这就是目标数据。3数据导出将结果导出到outfile中,过程如下:
1with open(outfile,'w',encoding='gb18030'as f:  #导出 
2    for i in set3:
3        #print(i)
4        f.write(str(i))
5        f.write('\n')
结果如下:
三、小结
Python可以解决Excel中数据和公式太多卡顿的问题,而且更加简便、不易出错。使用Excel办公遇到棘手的问题时,可以试试Python哦~




对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐
fileexists:告诉你“我”存在吗?

工作中一切困难的解决途径——motivatedolly

【爬虫实战】喜茶的门店都开在了哪里?

import delimited | 再也不用担心读入网页源代码“乱七芭蕉”了

如何简洁地列出指定属性的变量?ds命令来了!

如何在Python中进行描述性统计分析?

分析师和他们的雇主重视与管理层接触吗?——分析师参与盈余电话会议的研究

繁忙的董事与公司业绩:来自并购的证据
使用Python接口读取CSMAR数据
列表生成式|让你的代码简洁又美观
Stata中变量观测值的亲密伙伴——levelsof命令

爬虫俱乐部开发的命令更新及常见问题说明

Seminar | 道德培训真的有用吗?

网络爬虫入门之requests 库的基本使用——以亚马逊图书界面为例
reduce()函数和filter()函数闪亮登场
“环环”入扣之foreach命令

统计年鉴数据整理小技巧

Seminar | 作为飞行员,我比别的CEO多了什么?

利用TensorFlow构建前馈神经网络

推文合集(1)| Stata学习者必看的n篇推文!

Seminar | 诚信的价值

关于我们


微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata和python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存