vfp python_python foxpro数据聚合和分组运算——分组级运算和转换(3)
数据聚合和分组运算——分组级运算和转换(3),有需要的朋友可以参考下。
1、假设我们想要为一个DataFrame添加一个用于存放各索引分组平均值的列,一个办法是先聚合再合并:
>>> df
data1 data2 key1 key2
0 -0.898296 -2.406943 a one
1 0.647724 0.396892 a two
2 1.212983 -1.216713 b one
3 -0.985769 1.789978 b two
4 -1.307718 0.283956 a one
>>> k1_means = df.groupby('key1').mean().add_prefix('mean_')
>>> k1_means
mean_data1 mean_data2
key1
a -0.519430 -0.575365
b 0.113607 0.286633
>>> pd.merge(df, k1_means, left_on='key1', right_index=True)
data1 data2 key1 key2 mean_data1 mean_data2
0 -0.898296 -2.406943 a one -0.519430 -0.575365
1 0.647724 0.396892 a two -0.519430 -0.575365
4 -1.307718 0.283956 a one -0.519430 -0.575365
2 1.212983 -1.216713 b one 0.113607 0.286633
3 -0.985769 1.789978 b two 0.113607 0.286633虽然这样也行,但是不太灵活。可以将该过程看做利用np.mean函数对两个数据列进行转换。以people DataFrame为例,这次我们在GroupBy上使用transform方法:
>>> people = pd.DataFrame(np.random.randn(5, 5),
... columns=['a', 'b', 'c', 'd', 'e'],
... index=['Joe', 'Steve', 'Wes', 'Jim', 'Travis']
... )
>>> people
a b c d e
Joe 0.158236 0.691453 -0.747684 0.837464 -1.162627
Steve 2.348922 0.579045 -0.181377 -0.880806 -0.084888
Wes 1.480700 0.534549 0.734548 -0.293197 0.569053
Jim 0.267932 -0.920244 -0.360202 1.027389 1.769793
Travis 0.933654 -0.282514 0.791973 0.481784 0.701284
>>> key = ['one', 'two', 'one', 'two', 'one']
>>> people.groupby(key).mean()
a b c d e
one 0.857530 0.314496 0.259612 0.342017 0.035903
two 1.308427 -0.170599 -0.270789 0.073291 0.842453
>>> people.groupby(key).transform(np.mean)
a b c d e
Jim 1.308427 -0.170599 -0.270789 0.073291 0.842453
Joe 0.857530 0.314496 0.259612 0.342017 0.035903
Steve 1.308427 -0.170599 -0.270789 0.073291 0.842453
Travis 0.857530 0.314496 0.259612 0.342017 0.035903
Wes 0.857530 0.314496 0.259612 0.342017 0.035903不难看出,transform会将一个函数应用到各个分组,然后将结果放置到适当的位置上。如果各分组产生的是一个标量值,则该值就会被广播出去。现在,假设你希望从各组中减去平均值。
为此,我们先创建一个距平化函数(demeaning function),然后将其传给transform:
电脑技术网认为此文章对《python foxpro数据聚合和分组运算——分组级运算和转换(3)》说的很在理。>>> >>> def demean(arr):
... return arr - arr.mean()
...
>>> demeaned = people.groupby(key).transform(demean)
>>> demeaned
a b c d e
Jim -1.040495 -0.749644 -0.089412 0.954098 0.927341
Joe -0.699294 0.376957 -1.007296 0.495447 -1.198530
Steve 1.040495 0.749644 0.089412 -0.954098 -0.927341
Travis 0.076124 -0.597010 0.532361 0.139767 0.665380
Wes 0.623170 0.220053 0.474935 -0.635214 0.533150现在可以检查一下demeaned的分组平均值是否为0:
>>> demeaned.groupby(key).mean()
a b c d e
one 0.207723 0.073351 0.158312 -0.211738 0.177717
two -0.311585 -0.110026 -0.237468 0.317607 -0.266575
更多:python foxpro数据聚合和分组运算——分组级运算和转换(3)
https://www.002pc.comhttps://www.002pc.com/python/2183.html
你可能感兴趣的分组,运算,聚合,转换,数据
No alive nodes found in your cluster
0踩
赏
0 赞
vfp python_python foxpro数据聚合和分组运算——分组级运算和转换(3)相关推荐
- Python之数据聚合与分组运算
Python之数据聚合与分组运算 1. 关系型数据库方便对数据进行连接.过滤.转换和聚合. 2. Hadley Wickham创建了用于表示分组运算术语"split-apply-combin ...
- 【Python】GroupBy:数据聚合与分组运算
[博客地址]:https://blog.csdn.net/sunyaowu315 [博客大纲地址]:https://blog.csdn.net/sunyaowu315/article/details/ ...
- pandas 根据列名索引多列数据_Pandas 数据聚合与分组运算[groupby+apply]速查笔记
利用Pandas将数据进行分组,并将各组进行聚合或自定义函数处理. Pandas中Groupby分组与聚合过程 导入模块 import pandas as pd 缩写 df表示Dataframe对象 ...
- 数据聚合与分组运算——GroupBy
2019独角兽企业重金招聘Python工程师标准>>> pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片.切块.摘要等操作. 根据一个或多 ...
- 类的应用python平均分_【数据科学系统学习】Python # 数据分析基本操作[四] 数据规整化和数据聚合与分组运算...
本篇内容为整理<利用Python进行数据分析>,博主使用代码为 Python3,部分内容和书本有出入. 在前几篇中我们介绍了 NumPy.pandas.matplotlib 三个库的基本操 ...
- 利用Python进行数据分析--数据聚合与分组运算1
转载自:http://blog.csdn.net/ssw_1990/article/details/22286583 pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据 ...
- 利用python进行数据分析-数据聚合与分组运算2
1.分组级运算和转换 聚合只不过是分组运算的其中一种而已.介绍transform和apply方法,它们能够执行更多其他的分组运算 假设我们想要为一个DataFrame添加一个用于存放各索引分组平均值的 ...
- pandas合并groupby_pandas数据聚合与分组运算——groupby方法
简介 pandas中一类非常重要的操作是数据聚合与分组运算.通过groupby方法能够实现对数据集的拆分.统计.转换等操作,这个过程一气呵成. 在本文中,你将学到: 选取特定列分组: 对分组进行迭代: ...
- Python数据聚合和分组运算(1)-GroupBy Mechanics
前言 Python的pandas包提供的数据聚合与分组运算功能很强大,也很灵活.<Python for Data Analysis>这本书第9章详细的介绍了这方面的用法,但是有些细节不常用 ...
最新文章
- 计算机组成原理实验报告名,计算机组成原理的实验报告
- 皮一皮:究竟经历了什么才让他用上如此设备...
- java applet 官网_java applet
- 利用切片操作,实现一个trim()函数,去除字符串首尾的空格,不调用str的strip()方法:
- 科大星云诗社动态20210215
- jstack查看某个进程堆栈信息
- java窗体程序秒表,帮忙解释一个Java小程序(秒表)
- 4.2 优化数据访问
- MySQL常用命令集锦
- Haar特征提取算法的实现
- 第十三周项目2(1)
- windows方法和属性
- Java面试通关要点汇总集(基础篇之基本功,非原作者)
- 论文写作-如何提高英语论文写作水平
- 计算机在职博士要考吗,在职博士容易考吗?
- 跨域 万金油解决方法 非原理向
- MR756-ASEMI车用整流二极管MR756
- 让自己的博客可以在百度上搜索到
- loaderRunner 12 场景测试
- 基于JavaWeb+MySQL的图书管理系统