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 相关文章推荐
Django与遗留的数据库整合的方法指南
Jul 24 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
python基础之入门必看操作
Jul 26 Python
Python如何实现MySQL实例初始化详解
Nov 06 Python
python3.5 email实现发送邮件功能
May 22 Python
Python使用tkinter库实现文本显示用户输入功能示例
May 30 Python
Python实现基于PIL和tesseract的验证码识别功能示例
Jul 11 Python
python 获取毫秒数,计算调用时长的方法
Feb 20 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
appium+python adb常用命令分享
Mar 06 Python
BeautifulSoup中find和find_all的使用详解
Dec 07 Python
Python OpenCV 图像平移的实现示例
Jun 04 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
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
ECMAScript6新增值比较函数Object.is
2015/06/12 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
浅谈编码,解码,乱码的问题
2016/12/30 Python
Python实现自动为照片添加日期并分类的方法
2017/09/30 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
你不知道的5个HTML5新功能
2016/06/28 HTML / CSS
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
优质美利奴羊毛袜,不只是徒步旅行:Darn Tough Vermont
2018/11/05 全球购物
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
char型变量中能不能存贮一个中文汉字
2015/07/08 面试题
三关爱志愿服务活动方案
2014/08/17 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书