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实现多线程暴力破解登陆路由器功能代码分享
Jan 04 Python
最大K个数问题的Python版解法总结
Jun 16 Python
浅谈Python的垃圾回收机制
Dec 17 Python
python3.x实现发送邮件功能
May 22 Python
OpenCV 边缘检测
Jul 10 Python
pytorch打印网络结构的实例
Aug 19 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
Oct 09 Python
python Qt5实现窗体跟踪鼠标移动
Dec 13 Python
python数据爬下来保存的位置
Feb 17 Python
django配置app中的静态文件步骤
Mar 27 Python
Python将list元素转存为CSV文件的实现
Nov 16 Python
python opencv检测直线 cv2.HoughLinesP的实现
Jun 18 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实现Socket服务器的代码
2008/04/03 PHP
PHP中uploaded_files函数使用方法详解
2011/03/09 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
使用XHGui来测试PHP性能的教程
2015/07/03 PHP
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
javascript学习笔记(七)Ajax和Http状态码
2014/10/08 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
vue如何从接口请求数据
2017/06/22 Javascript
详解a++和++a的区别
2017/08/30 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
全站最详细的Vuex教程
2018/04/13 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
布同自制Python函数帮助查询小工具
2011/03/13 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
详解python中init方法和随机数方法
2019/03/13 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
2019/04/15 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
使用python turtle画高达
2020/01/19 Python
Python Django搭建网站流程图解
2020/06/13 Python
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
模范家庭事迹材料
2014/02/10 职场文书
宿舍标语大全
2014/06/19 职场文书
2014年审计工作总结
2014/11/17 职场文书
运动会通讯稿50字
2015/07/20 职场文书
你会写请假条吗?
2019/06/26 职场文书
Python操作CSV格式文件的方法大全
2021/07/15 Python
Web应用开发TypeScript使用详解
2022/05/25 Javascript