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 02 Python
Python 数据结构之旋转链表
Feb 25 Python
python3之微信文章爬虫实例讲解
Jul 12 Python
python编程线性回归代码示例
Dec 07 Python
django在接受post请求时显示403forbidden实例解析
Jan 25 Python
python 利用turtle库绘制笑脸和哭脸的例子
Nov 23 Python
Python多进程编程multiprocessing代码实例
Mar 12 Python
PyQt5 界面显示无响应的实现
Mar 26 Python
python中setuptools的作用是什么
Jun 19 Python
python 最简单的实现适配器设计模式的示例
Jun 30 Python
Python 使用 PyQt5 开发的关机小工具分享
Jul 16 Python
Pytest单元测试框架如何实现参数化
Sep 05 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/04/09 日漫
discuz目录文件资料汇总
2014/12/30 PHP
php里array_work用法实例分析
2015/07/13 PHP
php实现搜索类封装示例
2016/03/31 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
js查错流程归纳
2012/05/04 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
vue中引入mxGraph的步骤详解
2019/05/17 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
Python正规则表达式学习指南
2016/08/02 Python
python 简单的多线程链接实现代码
2016/08/28 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
法国房车租赁网站:Yescapa
2019/08/26 全球购物
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
领导干部廉政承诺书
2014/03/27 职场文书
个人授权委托书范本
2014/04/03 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
企业法人代表授权委托书
2014/10/02 职场文书
教师辞职书范文
2015/02/26 职场文书
入党积极分子党支部意见
2015/06/02 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
python四种出行路线规划的实现
2021/06/23 Python