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为tornado添加recaptcha验证码功能
Feb 26 Python
python登陆asp网站页面的实现代码
Jan 14 Python
安装python3的时候就是输入python3死活没有反应的解决方法
Jan 24 Python
python取数作为临时极大值(极小值)的方法
Oct 15 Python
Python设计模式之代理模式实例详解
Jan 19 Python
详解Python3 基本数据类型
Apr 19 Python
pytorch数据预处理错误的解决
Feb 20 Python
Django数据结果集序列化并展示实现过程
Apr 22 Python
基于TensorFlow的CNN实现Mnist手写数字识别
Jun 17 Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
java字符串格式化输出实例讲解
Jan 06 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
php数组编码转换示例详解
2014/03/11 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
javascript中的location用法简单介绍
2007/03/07 Javascript
取得窗口大小 兼容所有浏览器的js代码
2011/08/09 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
Python简易计算器制作方法代码详解
2019/10/31 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
澳大利亚领先的女帽及配饰公司:Morgan&Taylor
2019/12/01 全球购物
测控技术与仪器个人求职信范文
2013/12/30 职场文书
给医务人员表扬信
2014/01/12 职场文书
实习生求职自荐信
2014/02/07 职场文书
白酒市场营销方案
2014/02/25 职场文书
团购业务员岗位职责
2014/03/15 职场文书
学习十八大标语
2014/10/09 职场文书
教师先进个人材料
2014/12/17 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
学校光盘行动倡议书
2015/04/28 职场文书
培养联系人考察意见
2015/06/01 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
python使用pygame创建精灵Sprite
2021/04/06 Python
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python