import pandas as pd
data = pd.DataFrame({'name':['wencky','stany','barbio','barbio'],'age':[29,29,3,10],'gender':['w','m','m', 'w']})# 1 transform可用,agg和apply得到NaN。
data["a"] = data.groupby("gender")["age"].agg(lambda x: x.mean())
# 输出
name  age gender   a
0  wencky   29      w NaN
1   stany   29      m NaN
2  barbio    3      m NaN
3  barbio   10      w NaNdata["a"] = data.groupby("gender")["age"].apply(lambda x: x.mean())
# 输出
name  age gender   a
0  wencky   29      w NaN
1   stany   29      m NaN
2  barbio    3      m NaN
3  barbio   10      w NaNdata["a"] = data.groupby("gender")["age"].transform(lambda x: x.mean())
# 输出name  age gender     a
0  wencky   29      w  19.5
1   stany   29      m  16.0
2  barbio    3      m  16.0
3  barbio   10      w  19.5# 2
data= data.groupby("gender")["age"].agg(lambda x: x.mean())
# 输出
gender
m    16.0
w    19.5data= data.groupby("gender")["age"].apply(lambda x: x.mean())# 输出
gender
m    16.0
w    19.5data= data.groupby("gender")["age"].transform(lambda x: x.mean())
# 输出
0    19.5
1    16.0
2    16.0
3    19.5# 3
data = data.groupby("gender").agg(lambda x: x["age"].mean())
# 报错data = data.groupby("gender").apply(lambda x: x["age"].mean())
# 输出
gender
m    16.0
w    19.5data = data.groupby("gender").transform(lambda x: x["age"].mean())
# 报错# 4 该用法不可用
data["c"] = data.groupby("gender").agg(lambda x: x["age"].mean())
# 报错data["c"] = data.groupby("gender").apply(lambda x: x["age"].mean())
# 输出name  age gender   c
0  wencky   29      w NaN
1   stany   29      m NaN
2  barbio    3      m NaN
3  barbio   10      w NaNdata["c"] = data.groupby("gender").transform(lambda x: x["age"].mean())
# 报错# 以下5-8用法使用agg均报错:valueError: Must produce aggregated value# 5
data["b"]= data.groupby("gender")["age"].agg(lambda x: x+1)
# 输出
valueError: Must produce aggregated valuedata["b"]= data.groupby("gender")["age"].apply(lambda x: x+1)
# 输出name  age gender   b
0  wencky   29      w  30
1   stany   29      m  30
2  barbio    3      m   4
3  barbio   10      w  11data["b"]= data.groupby("gender")["age"].transform(lambda x: x+1)
# 输出name  age gender   b
0  wencky   29      w  30
1   stany   29      m  30
2  barbio    3      m   4
3  barbio   10      w  11# 6 两种用法结果一致
data = data.groupby("gender")["age"].apply(lambda x: x+1)
data = data.groupby("gender")["age"].transform(lambda x: x+1)
# 输出
0    30
1    30
2     4
3    11# 7
data = data.groupby("gender").apply(lambda x: x["age"]+1)
# 输出
gender
m       1    302     4
w       0    303    11data = data.groupby("gender").transform(lambda x: x["age"]+1)
# 报错# 8
data["d"] = data.groupby("gender").apply(lambda x: x["age"]+1)
# 报错data["d"] = data.groupby("gender"). transform (lambda x: x["age"]+1)
# 报错

python:dataframe groupby后agg、apply、transfrom用法相关推荐

  1. 分组统计 - DataFrame.groupby() 所见的各种用法 - Python代码

    目录 所见 1 :日常用法 所见 2 :解决groupby.sum() 后层级索引levels上移的问题 所见 3 :解决groupby.apply() 后层级索引levels上移的问题 所见 4 : ...

  2. Python DataFrame数据清洗后行索引不连续——reset_index

    调用reset_index()即可解决: data1为索引不连续的表,data2为重置索引后索引连续的表. ----------------分割线---------------- 从今天开始,要写一些 ...

  3. dataframe groupby_详解pandas中的map、apply、applymap、groupby、agg.

    一.简介 pandas提供了很多方便简洁的方法,用于对单列.多列数据进行批量运算或分组聚合运算,熟悉这些方法后可极大地提升数据分析的效率,也会使得你的代码更加地优雅简洁. 本文就将针对pandas中的 ...

  4. python和R对dataframe的分组聚合操作:dplyr、groupby、agg、group_by、nunique、reset_index、rename、summarise、n_distinct

    python和R对dataframe的分组聚合操作:dplyr.groupby.agg.group_by.nunique.reset_index.rename.summarise.n_distinct ...

  5. python 数据分组后看每组多少个_【Python】分组统计GroupBy技术详解

    摘要 进行数据分析时,GroupBy分组统计是非常常用的操作,也是十分重要的操作之一.基本上大部分的数据分析都会用到该操作,本文将对Python的GroupBy分组统计操作进行讲解. 1.GroupB ...

  6. pandas dataframe数据聚合groupby、agg、privot基于sum统计详解及实例

    pandas dataframe数据聚合groupby.agg.privot基于sum统计详解及实例 知道了sum.那么min.max.mean.median都是举一反三的事情了. 在日常的数据分析中 ...

  7. DataFrame groupby+agg出现SpecificationError: nested renamer is not supported的错误

    这个应该是pandas的版本问题 ,我的是v1.0.5,也会出现这个问题,如下面的代码所示: >>> import pandas as pd >>> data=pd ...

  8. 【Python 数据科学】聚合apply和agg

    文章目录 apply agg import pandas as pd position=pd.read_csv('DataAnalyst.csv',encoding='gbk') company=pd ...

  9. 定量分析---频率分布直方图(groupby,agg,round具体用法)

    对数据集"捞起生鱼片"做定量分析 穿插pandas的cut,groupby,agg方法 定量数据分布分析 对于定量数据而言,选择组数与组宽是做评率分布分析时最主要的问题,步骤如下: ...

最新文章

  1. python自动输出_python自动化报告的输出
  2. fork()会拷贝子线程吗?
  3. TW实习日记:第16天
  4. Springboot实现邮件发送(2020最新版)
  5. 华为云GaussDB(for MySQL)2.0全新升级,三大技术大揭秘
  6. L1-077 大笨钟的心情 (15 分)-PAT 团体程序设计天梯赛 GPLT
  7. 基于docker的php调用基于docker的mysql数据库的方法
  8. 2018-2019-2 20165209 《网络对抗技术》Exp7: 网络欺诈防范
  9. 微服务架构实战(四):服务发现的可行方案以及实践案例
  10. 程序员修炼之道——读序
  11. Linux - zookeeper集群搭建
  12. html5图片任何改不透明度,如何巧改插入图片的透明度
  13. jquery,Ajax判断验证码是否正确,不正确阻止提交
  14. 微信开发者工具网页h5本地开发,解决微信公众号绑定域名,本地无法调用微信api问题
  15. linux so lazyload,linux函数深入探索——open函数打开文件是否将文件内容加载到内存空间...
  16. cvRound cvFloor cvCei 和 int
  17. Cordys BOP 4平台开发入门实战演练——会签流程建模开发
  18. html如何注释文字,css怎么注释?
  19. 【threejs】可视化大屏酷炫3D地图附源码
  20. Unity 屏幕特效 之 热浪扭曲效果的实现

热门文章

  1. Quartz在Spring中动态设置cronExpression
  2. C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式
  3. Linux 系统运维 文件操作命令
  4. java结丹期(14)----javaweb(cookiesession)
  5. 密码学基础知识(八)略说数字签名
  6. 常见的钓鱼招式,可千万别入坑哦
  7. 【安全漏洞】Emissary 的SSRF漏洞(CVE-2021-32639)发现过程
  8. NCTF2019 -- PWN部分writeup
  9. Windows保护模式学习笔记(十三)—— PWTPCD
  10. 160个CrackMe002