pandas数据预处理之dataframe的groupby操作
来源:互联网 发布:scala二维数组 编辑:程序博客网 时间:2024/05/29 07:08
在数据预处理过程中可能会遇到这样的问题,如下图:数据中某一个key有多组数据,如何分别对每个key进行相同的运算?
‘
dataframe里面给出了一个group by的一个操作,对于”group by”操作,我们通常是指以下一个或多个操作步骤:
l (Splitting)按照一些规则将数据分为不同的组;
l (Applying)对于每组数据分别执行一个函数;
l (Combining)将结果组合到一个数据结构中;
使用dataframe实现groupby的用法:
# -*- coding: UTF-8 -*-import pandas as pddf = pd.DataFrame([{'col1':'a', 'col2':1, 'col3':'aa'}, {'col1':'b', 'col2':2, 'col3':'bb'}, {'col1':'c', 'col2':3, 'col3':'cc'}, {'col1':'a', 'col2':44, 'col3':'aa'}])print df# 按col1分组并按col2求和print df.groupby(by='col1').agg({'col2':sum}).reset_index()# 按col1分组并按col2求最值print df.groupby(by='col1').agg({'col2':['max', 'min']}).reset_index()# 按col1 ,col3分组并按col2求和print df.groupby(by=['col1', 'col3']).agg({'col2':sum}).reset_index()输出结果为:
col1 col2 col30 a 1 aa1 b 2 bb2 c 3 cc3 a 44 aa
col1 col20 a 451 b 22 c 3
col1 col2 max min0 a 44 11 b 2 22 c 3 3
col1 col3 col20 a aa 451 b bb 22 c cc 3注意点:
代码中调用了reset_index() 函数, 如果不使用这个函数输出的结果将是:
col2col1 a 45b 2c 3 col2 max mincol1 a 44 1b 2 2c 3 3 col2col1 col3 a aa 45b bb 2c cc 3上下两个结果还是有区别的,但是具体区别暂时不太清楚,不过下面的一种输出结果是不能跟使用df['col1']来提取第一列的。至于是什么原因暂时还不清楚,如果您对pandas比较理解或者知道原因,欢迎在评论中留言。
0 0
- pandas数据预处理之dataframe的groupby操作
- 关于pandas.DataFrame的groupby的用法
- Pandas之DataFrame操作
- Pandas之Dataframe操作
- 预处理第一篇:Pandas.DataFrame的使用
- pandas库介绍之DataFrame基本操作
- pandas库介绍之DataFrame基本操作
- pandas--系列之groupby
- pandas系列之 DataFrame 行列数据筛选
- 【跟着stackoverflow学Pandas】--Converting a Pandas GroupBy object to DataFrame-Groupby对象转换为DataFrame
- python/pandas dataframe中multiindex的操作
- Pandas DataFrame 日常的操作与发现
- Pandas:DataFrame对象的基础操作
- pandas dataframe行和列的操作
- pandas 的groupby函数
- pandas.DataFrame 操作
- Pandas DataFrame操作
- pandas Dataframe操作笔记
- 表单控件大小
- Linux 文本处理工具
- ubuntu indigo skeleton tracker(骨骼跟踪)
- python使用opencv2人脸识别
- 表单控件状态(禁用状态)
- pandas数据预处理之dataframe的groupby操作
- 1047: 阿姆斯特朗数
- Python:类型
- 18. 4Sum
- opencv(9)---图像基本操作
- mysql导入数据时提示 USING BTREE 错误解决办法
- 《算法导论》第4章 分治策略 个人笔记
- secure boot 的知识
- [编程题] 度度熊回家