如何用pandas提取不重复数据

今天的问题是如何从多行数据中提取不重复的行,有重复的不管其重复项还是其本身都删除掉。如下图所示,提取出其中不重复的那一行:

刚开始想了半天,找了半天资料也没查到查到Python怎样直接提取不重复值,后面转念一想,提取不重复的不就是删除重复值吗?这死脑筋转不过弯。

进入正题,要把重复的项删掉,我们用到的是drop_duplicates来删除重复值:

pandas.DataFrame.drop_duplicates

这个方法有两个参数:

subset:要匹配重复项的列标签,可以是单独一个列,也可以是几个列,用序列表示。默认是选择所有列。

keep:删除重复项留下哪一行,keep=first:留下重复项中的第一行。keep=last:留下最后一行。keep=False:删除所有重复项。


提取完成

引申,那如果我们是通过导入csv文件的形式来处理数据,如果导入的文件没有列标签(column label)怎么办呢,还能通过subset进行匹配吗?其实read_csv在导入文件的时候已经为我们创建好列标签了。read_csv会默认将文件的第一行设置为列标签,如果我们不希望将第一行设置为列标签,需要给read_csv设置一个参数,header=None,这样pandas就会单独加上一列数据[0,1,2,3...]为列标签。subset通过这些标签来匹配就可以了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容