pandas去除重复列的实现方法


Posted in Python onJanuary 29, 2019

数据准备

假设我们目前有两个数据表:

① 一个数据表是关于三个人他们的id以及其他的几列属性信息

import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randint(low=1,high=20,size=(3,4)))
data['id'] = range(1,4)
# 输出:其中,最左边的0 1 2 为其索引

pandas去除重复列的实现方法

② 另外一个数据表是3个用户的app操作日志信息,一个人会有多条app操作记录

sample = pd.DataFrame(np.random.randint(low=1,high=9,size=(7,1)),columns=['hhh'])
sample['id'] = [1,1,2,2,3,3,3]
# 输出:

pandas去除重复列的实现方法

问题描述

① 首先我们需要统计每个用户app操作记录数,比如上表可以看出用户id为1的用户有2条操作记录,用户id为3的用户有3条操作记录

s = sample.groupby('id').count()
# 输出:

pandas去除重复列的实现方法

② 此时,S是一个以id为索引,count出来的记录数为value的Series结构。因为考虑到后面我们需要id列进行merge,所以我们需要让id列从索引列变成真实的一列。

s = s.reset_index()
# 输出:

pandas去除重复列的实现方法

③ 将S与最上的data表进行merge,我们不想要看到重复的id列,甚至我们也可以将问题延伸为S与data表不止是id列的重复,还有好多条其他的列的重复,那么如何保证将它们merge之后没有重复列呢?

解决方案

第一想法是用 DataFrame.drop(‘列名') 或者用 del DataFrame[‘列名']

但是如果用该方法,会删除掉所有的重复列,而达不到我们的要求。

办法是: 参考StackOverflow解答

cols_to_use = s.columns.difference(data.columns) # pandas版本在0.15及之上的都可以用这种方法,该方法找出S和data表的不同列,然后再进行merge
pd.merge(data, s[cols_to_use], left_index=True, right_index=True, how='outer')

pandas去除重复列的实现方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python函数式编程指南(四):生成器详解
Jun 24 Python
window下eclipse安装python插件教程
Apr 24 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 Python
Django的分页器实例(paginator)
Dec 01 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
python 获取当前目录下的文件目录和文件名实例代码详解
Mar 10 Python
python matplotlib实现将图例放在图外
Apr 17 Python
Python小白不正确的使用类变量实例
May 29 Python
Python使用itcaht库实现微信自动收发消息功能
Jul 13 Python
python中实现词云图的示例
Dec 19 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
Jan 29 #Python
pandas去重复行并分类汇总的实现方法
Jan 29 #Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
Jan 29 #Python
Python使用ctypes调用C/C++的方法
Jan 29 #Python
dataframe 按条件替换某一列中的值方法
Jan 29 #Python
Numpy之random函数使用学习
Jan 29 #Python
pandas DataFrame 删除重复的行的实现方法
Jan 29 #Python
You might like
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
Yii2 queue的队列使用详解
2019/07/19 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
2011/10/31 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
[01:11]辉夜杯战队访谈宣传片—CDEC.Y
2015/12/26 DOTA
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
python根据文件大小打log日志
2014/10/09 Python
python采集百度百科的方法
2015/06/05 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
详解Python使用tensorflow入门指南
2018/02/09 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
python多线程同步之文件读写控制
2021/02/25 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
python如何查看安装了的模块
2020/06/23 Python
python开发一款翻译工具
2020/10/10 Python
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
大学校运会广播稿
2014/02/03 职场文书
学习之星事迹材料
2014/05/17 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
Go语言设计模式之结构型模式
2021/06/22 Golang
分析SQL窗口函数之排名窗口函数
2022/04/21 Oracle