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)相关推荐

  1. python去重保留唯一一个值_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...

    摘要 在进行数据分析时,我们经常需要对DataFrame去重,但有时候也会需要只保留重复值. 这里就简单的介绍一下对于DataFrame去重和取重复值的操作. 创建DataFrame 这里首先创建一个 ...

  2. python将pandas dataframe内容写入ElasticSearch实战

    python将pandas dataframe内容写入ElasticSearch实战 目录 python将pandas dataframe内容写入ElasticSearch实战 索引设置 数据写入 数 ...

  3. python pandas 遍历 DataFrame

    python pandas 遍历 DataFrame df = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', ...

  4. python的out模式_如何用python中的DataFrame列的模式替换NA值?

    我对Python(和本网站)完全陌生,目前正试图用它们的模式替换特定数据帧列中的NA值.我试过了各种不起作用的方法.请帮我看看我做错了什么:如何用python中的DataFrame列的模式替换NA值? ...

  5. python去重且顺序不变_Python实现嵌套列表去重方法示例

    发现问题 python嵌套列表大家应该都不陌生,但最近遇到了一个问题,这是工作中遇到的一个坑,首先看一下问题 raw_list = [["百度", "CPY"] ...

  6. 怎么把竖列中的数相加python_关于python中pandas.DataFrame对行与列求和及添加新行与列示例代码...

    pandas是python环境下最有名的数据统计包,而DataFrame翻译为数据框,是一种数据组织方式,这篇文章主要给大家介绍了关于python中pandas.DataFrame对行与列求和及添加新 ...

  7. [转载] Python中pandas dataframe删除一行或一列:drop函数

    参考链接: Python | Pandas 数据 DataFrame 用法:DataFrame.drop(labels=None,axis=0, index=None, columns=None, i ...

  8. 【Python数据处理篇——DataFrame数据准备】DataFrame的创建、增删改查、数据导入等

    欢迎访问我搞事情的[知乎账号]:Coffee 以及我的[B站漫威剪辑账号]:VideosMan 若我的笔记对你有帮助,请用小小的手指,点一个大大的赞哦. 关于DataFrame的相关知识,我还进行了汇 ...

  9. python去重、根据某列统计另一列频数

    python去重.根据某列统计另一列频数 假如有如下格式的数据,实现两个操作:(1)根据"ABC"列去重:(2)根据"jd"列统计"cun" ...

  10. python pandas 分割DataFrame中的字符串及元组

    python pandas 分割DataFrame中的字符串类型数据的方法 文章目录 1.使用str.split()方法 2.使用join()与split()方法结合 3. 使用apply方法分割元组 ...

最新文章

  1. 英语文章、常用短语部分摘选集锦
  2. 《微信小程序开发入门精要》——导读
  3. oracle给每行加上序号,Oracle 根据分类字段给查询结果添加序号
  4. yolov3 python_Python 3 Keras YOLO v3解析与实现
  5. ASP.NET调用dos命令获取交换机流量
  6. Redis(3-3):列表类型
  7. android 悬浮组件,Android 悬浮组件
  8. OpenShift 4 Hands-on Lab (13) 使用持久化存储
  9. 多标签分类与BCELoss
  10. 应用程序错误代码0xe06d7363怎么解决
  11. python3.6安装步骤-详解win7下python3.6安装配置方法步骤
  12. H12-211数通HCNA题库解析(二)
  13. Linux系统的镜像文件下载
  14. python利用PyQt5制作QQ空间登入客户端
  15. 压缩文件解压密码破解之fcrackzip
  16. 异常来自nbsp;HRESULT:0x80040215
  17. 传统企业如何精准获客?搭上这趟高科技顺风车
  18. android webView显示PDF文件
  19. WireShark 抓包使用教程--详细
  20. CentOS6云服务器磁盘扩容方案

热门文章

  1. 我是如何从程序小白成为码农的
  2. 为什么创业者专注做一个产品最好?
  3. Quartz在Spring中动态设置cronExpression
  4. Keras实现seq2seq案例代码:Bi-LSTM
  5. 出块过程(2)nodeos 服务器接收消息
  6. buuctf rar1
  7. 关于django—模型序列化器类详细内容
  8. WIN32多线程抢红包练习
  9. JavaScript与DOM编程
  10. notsequence 寒假逆向生涯(9/100)