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判断字符串是否纯数字的方法
Nov 19 Python
Python中input与raw_input 之间的比较
Aug 20 Python
python excel使用xlutils类库实现追加写功能的方法
May 02 Python
在pandas多重索引multiIndex中选定指定索引的行方法
Nov 16 Python
Python OpenCV中的resize()函数的使用
Jun 20 Python
Python 实现训练集、测试集随机划分
Jan 08 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
Mar 13 Python
使用Python实现将多表分批次从数据库导出到Excel
May 15 Python
Python如何解除一个装饰器
Aug 07 Python
Python try except else使用详解
Jan 12 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
BBS(php & mysql)完整版(五)
2006/10/09 PHP
PHP 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
php图片上传存储源码并且可以预览
2011/08/26 PHP
php注销代码(session注销)
2012/05/31 PHP
PHP5函数小全(分享)
2013/06/06 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
2015/03/21 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
2015/11/18 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
小程序实现发表评论功能
2018/07/06 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
测绘工程个人的自我评价
2013/11/10 职场文书
社会实践评语
2014/04/28 职场文书
党员承诺书怎么写
2014/05/20 职场文书
校长师德表现自我评价
2015/03/04 职场文书
Docker官方工具docker-registry案例演示
2022/04/13 Servers