数据聚合和分组运算——分组级运算和转换(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)相关推荐

  1. Python之数据聚合与分组运算

    Python之数据聚合与分组运算 1. 关系型数据库方便对数据进行连接.过滤.转换和聚合. 2. Hadley Wickham创建了用于表示分组运算术语"split-apply-combin ...

  2. 【Python】GroupBy:数据聚合与分组运算

    [博客地址]:https://blog.csdn.net/sunyaowu315 [博客大纲地址]:https://blog.csdn.net/sunyaowu315/article/details/ ...

  3. pandas 根据列名索引多列数据_Pandas 数据聚合与分组运算[groupby+apply]速查笔记

    利用Pandas将数据进行分组,并将各组进行聚合或自定义函数处理. Pandas中Groupby分组与聚合过程 导入模块 import pandas as pd 缩写 df表示Dataframe对象 ...

  4. 数据聚合与分组运算——GroupBy

    2019独角兽企业重金招聘Python工程师标准>>> pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片.切块.摘要等操作. 根据一个或多 ...

  5. 类的应用python平均分_【数据科学系统学习】Python # 数据分析基本操作[四] 数据规整化和数据聚合与分组运算...

    本篇内容为整理<利用Python进行数据分析>,博主使用代码为 Python3,部分内容和书本有出入. 在前几篇中我们介绍了 NumPy.pandas.matplotlib 三个库的基本操 ...

  6. 利用Python进行数据分析--数据聚合与分组运算1

    转载自:http://blog.csdn.net/ssw_1990/article/details/22286583 pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据 ...

  7. 利用python进行数据分析-数据聚合与分组运算2

    1.分组级运算和转换 聚合只不过是分组运算的其中一种而已.介绍transform和apply方法,它们能够执行更多其他的分组运算 假设我们想要为一个DataFrame添加一个用于存放各索引分组平均值的 ...

  8. pandas合并groupby_pandas数据聚合与分组运算——groupby方法

    简介 pandas中一类非常重要的操作是数据聚合与分组运算.通过groupby方法能够实现对数据集的拆分.统计.转换等操作,这个过程一气呵成. 在本文中,你将学到: 选取特定列分组: 对分组进行迭代: ...

  9. Python数据聚合和分组运算(1)-GroupBy Mechanics

    前言 Python的pandas包提供的数据聚合与分组运算功能很强大,也很灵活.<Python for Data Analysis>这本书第9章详细的介绍了这方面的用法,但是有些细节不常用 ...

最新文章

  1. 计算机组成原理实验报告名,计算机组成原理的实验报告
  2. 皮一皮:究竟经历了什么才让他用上如此设备...
  3. java applet 官网_java applet
  4. 利用切片操作,实现一个trim()函数,去除字符串首尾的空格,不调用str的strip()方法:
  5. 科大星云诗社动态20210215
  6. jstack查看某个进程堆栈信息
  7. java窗体程序秒表,帮忙解释一个Java小程序(秒表)
  8. 4.2 优化数据访问
  9. MySQL常用命令集锦
  10. Haar特征提取算法的实现
  11. 第十三周项目2(1)
  12. windows方法和属性
  13. Java面试通关要点汇总集(基础篇之基本功,非原作者)
  14. 论文写作-如何提高英语论文写作水平
  15. 计算机在职博士要考吗,在职博士容易考吗?
  16. 跨域 万金油解决方法 非原理向
  17. MR756-ASEMI车用整流二极管MR756
  18. 让自己的博客可以在百度上搜索到
  19. loaderRunner 12 场景测试
  20. 基于JavaWeb+MySQL的图书管理系统

热门文章

  1. volatile可见性MESI协议volatile
  2. 如何把ppt转换成word文档格式
  3. NFT熊市大考:并购整合进行时
  4. office2019安装包下载安装图文教程明细
  5. Java中List集合去重的几种方式
  6. openssl1.1.1q安装
  7. 什么运动耳机好用、五款运动耳机推荐性价比清单
  8. 请教如何实现SQL查询24小时内,当前时间之前20分钟的信息
  9. 手机无盘服务器,无盘游戏服务器
  10. 实现Python构造函数重载效果