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制作检测Linux运行信息的工具的教程
Apr 01 Python
使用Python实现博客上进行自动翻页
Aug 23 Python
详解django.contirb.auth-认证
Jul 16 Python
Python后台开发Django会话控制的实现
Apr 15 Python
Python安装与基本数据类型教程详解
May 29 Python
Python实现语音识别和语音合成功能
Sep 20 Python
python实现宿舍管理系统
Nov 22 Python
python3中sorted函数里cmp参数改变详解
Mar 12 Python
如何把python项目部署到linux服务器
Aug 26 Python
详细总结Python常见的安全问题
May 21 Python
详解Python中的for循环
Apr 30 Python
python index() 与 rindex() 方法的使用示例详解
Dec 24 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
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
js confirm()方法的使用方法实例
2013/07/13 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
jQuery动态星级评分效果实现方法
2015/08/06 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
vue-cli axios请求方式及跨域处理问题
2018/03/28 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
详解JavaScript的变量
2019/04/04 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
讲解Python中fileno()方法的使用
2015/05/24 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
机电一体化毕业生求职信
2013/11/02 职场文书
会计系中文个人求职信
2013/12/24 职场文书
物业管理计划书
2014/01/10 职场文书
计生专干事迹
2014/05/28 职场文书
教育实习指导教师评语
2014/12/31 职场文书
人才市场接收函
2015/01/30 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android
canvas 中如何实现物体的框选
2022/08/05 Javascript