python:去重(list,dataframe)
1.对列表去重
1.1.用for或while去重
1.2.用集合的特性set()
>>> l = [1,4,3,3,4,2,3,4,5,6,1]
>>> type(l)
<class 'list'>
>>> set(l)
{1, 2, 3, 4, 5, 6}
>>> res = list(set(l))
>>> res
[1, 2, 3, 4, 5, 6]
1.3.使用itertools模块的grouby方法
>>> li2 = [1,4,3,3,4,2,3,4,5,6,1]
>>> li2.sort() # 排序
>>> it = itertools.groupby(li2)
>>> for k, g in it:
... print (k)
...
1
2
3
4
5
6
1.4.使用keys()方式
>>> li4 = [1,0,3,7,7,5]
>>> {}.fromkeys(li4)
{1: None, 0: None, 3: None, 7: None, 5: None}
>>> {}.fromkeys(li4).keys()
dict_keys([1, 0, 3, 7, 5])
>>> list({}.fromkeys(li4).keys())
[1, 0, 3, 7, 5]
1.5.使用unique
对于一维数组或者列表,unique函数去除其中重复的元素,并按元素由大到小返回一个新的无元素重复的元组或者列表
return_index=True:返回新列表a=[1 2 3 4 5]中每个元素在原列表A = [1 2 5 3 4 3]中第一次出现的索引值
return_inverse=True:返回原列表A = [1 2 5 3 4 3]中每个元素在新列表a=[1 2 3 4 5]中的索引值
>>> A = [1, 2, 5, 3, 4, 3]
>>> a, s, p = np.unique(A, return_index=True, return_inverse=True)>>> print ("新列表:",a)
新列表: [1 2 3 4 5]>>> print ("return_index", s)
return_index [0 1 3 4 2]>>> print ("return_inverse", p)
return_inverse [0 1 4 2 3 2]
2.对数据框去重
2.1.用unique()对单属性列去重
>>> import pandas as pd
>>> data = {'id':['A','B','C','C','C','A','B','C','A'],'age':[18,20,14,10,50,14,65,14,98]}
>>> data = pd.DataFrame(data)
>>> data.id.unique()
array(['A', 'B', 'C'], dtype=object)
###或者
>>> np.unique(data.id)
array(['A', 'B', 'C'], dtype=object)
2.2.用frame.drop_duplicates()对单属性列去重
>>> data.drop_duplicates(['id'])id age
0 A 18
1 B 20
2 C 14
2.3.用frame.drop_duplicates()对多属性列去重
>>> data.drop_duplicates(['id','age'])id age
0 A 18
1 B 20
2 C 14
3 C 10
4 C 50
5 A 14
6 B 65
8 A 98
2.4.用frame.duplicated()对多属性列去重
>>> isduplicated = data.duplicated(['id','age'],keep='first')
>>> data.loc[~isduplicated,:]id age
0 A 18
1 B 20
2 C 14
3 C 10
4 C 50
5 A 14
6 B 65
8 A 98
>>> data.loc[isduplicated,:]id age
7 C 14
python:去重(list,dataframe)相关推荐
- python去重保留唯一一个值_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...
摘要 在进行数据分析时,我们经常需要对DataFrame去重,但有时候也会需要只保留重复值. 这里就简单的介绍一下对于DataFrame去重和取重复值的操作. 创建DataFrame 这里首先创建一个 ...
- python将pandas dataframe内容写入ElasticSearch实战
python将pandas dataframe内容写入ElasticSearch实战 目录 python将pandas dataframe内容写入ElasticSearch实战 索引设置 数据写入 数 ...
- python pandas 遍历 DataFrame
python pandas 遍历 DataFrame df = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', ...
- python的out模式_如何用python中的DataFrame列的模式替换NA值?
我对Python(和本网站)完全陌生,目前正试图用它们的模式替换特定数据帧列中的NA值.我试过了各种不起作用的方法.请帮我看看我做错了什么:如何用python中的DataFrame列的模式替换NA值? ...
- python去重且顺序不变_Python实现嵌套列表去重方法示例
发现问题 python嵌套列表大家应该都不陌生,但最近遇到了一个问题,这是工作中遇到的一个坑,首先看一下问题 raw_list = [["百度", "CPY"] ...
- 怎么把竖列中的数相加python_关于python中pandas.DataFrame对行与列求和及添加新行与列示例代码...
pandas是python环境下最有名的数据统计包,而DataFrame翻译为数据框,是一种数据组织方式,这篇文章主要给大家介绍了关于python中pandas.DataFrame对行与列求和及添加新 ...
- [转载] Python中pandas dataframe删除一行或一列:drop函数
参考链接: Python | Pandas 数据 DataFrame 用法:DataFrame.drop(labels=None,axis=0, index=None, columns=None, i ...
- 【Python数据处理篇——DataFrame数据准备】DataFrame的创建、增删改查、数据导入等
欢迎访问我搞事情的[知乎账号]:Coffee 以及我的[B站漫威剪辑账号]:VideosMan 若我的笔记对你有帮助,请用小小的手指,点一个大大的赞哦. 关于DataFrame的相关知识,我还进行了汇 ...
- python去重、根据某列统计另一列频数
python去重.根据某列统计另一列频数 假如有如下格式的数据,实现两个操作:(1)根据"ABC"列去重:(2)根据"jd"列统计"cun" ...
- python pandas 分割DataFrame中的字符串及元组
python pandas 分割DataFrame中的字符串类型数据的方法 文章目录 1.使用str.split()方法 2.使用join()与split()方法结合 3. 使用apply方法分割元组 ...
最新文章
- 英语文章、常用短语部分摘选集锦
- 《微信小程序开发入门精要》——导读
- oracle给每行加上序号,Oracle 根据分类字段给查询结果添加序号
- yolov3 python_Python 3 Keras YOLO v3解析与实现
- ASP.NET调用dos命令获取交换机流量
- Redis(3-3):列表类型
- android 悬浮组件,Android 悬浮组件
- OpenShift 4 Hands-on Lab (13) 使用持久化存储
- 多标签分类与BCELoss
- 应用程序错误代码0xe06d7363怎么解决
- python3.6安装步骤-详解win7下python3.6安装配置方法步骤
- H12-211数通HCNA题库解析(二)
- Linux系统的镜像文件下载
- python利用PyQt5制作QQ空间登入客户端
- 压缩文件解压密码破解之fcrackzip
- 异常来自nbsp;HRESULT:0x80040215
- 传统企业如何精准获客?搭上这趟高科技顺风车
- android webView显示PDF文件
- WireShark 抓包使用教程--详细
- CentOS6云服务器磁盘扩容方案