pandas 数据透视表及逆透视

主要参数说明

pd.pivot_table(df,index= []  ,columns= []  ,values = []  ,  aggfunc={"Quantity":len,"Price":[np.sum,np.mean]},fill_value=0,margins=True)
  • index 类似excel透视表里面的行,
  • columns 类似excel透视表里面的列
  • values 类似excel透视表里面的 值
  • aggfunc 类似 值汇总方式,通常在groupby里可用的函数,这里都可以,默认是相同的汇总方式,都为取平均值,可以通过字典的形式指定不同的值有不同的汇总方式,同时一个值也可以有多重汇总方式。常见的汇总方式有:‘count’,‘sum’,‘mean’, 这里支持匿名函数lambda,如:aggfunc=lambda x: len(x.unique()),可以实现非重复计数
  • fill_value 填充空值的参数
  • margins 是否显示汇总行,默认是False

透视完成后想保存结果,通常要重置索引

df = pd.pivot_table(df,index='A',values='B')
df = df.reset_index()
df.columns = df.columns.str.replace('A','年级)

逆透视 melt

pd.melt(df,id_vars = [],value_vars=[],var_name=[],value_name=[])
  • id_vars: 保留的列
  • value_vars: 需要逆透视的列
  • var_name: 逆透视列转化后的列名
  • value_name: 汇总的值的名字

其他数据汇总方式

crosstab 交叉表 与透视表功能类似

pd.crosstab(df['A'], df['B'], normalize=True))  显示总占比
pd.crosstab(df['A'], df['B'], normalize='index'))  显示行占比
pd.crosstab(df['date'], df['key'], values=df['values'], aggfunc=np.sum, margins=True))   显示 汇总

groupby agg分组聚合 可以聚合的方式有:max,min,count,mean,var(方差),median(中位数),std(标准差),sum,

df.groupby('A').apply(lambda x: x['C']-x['B'])
df.groupby('a').agg('mean')
data.groupby('company').agg({'salary':'median','age':'mean'})

groupby transform 直接生成新的一列。

data['avg_salary'] = data.groupby('company')['salary'].transform('mean')

groupby apply 自定义汇总方式。

def get_oldest_staff(x):...:     df = x.sort_values(by = 'age',ascending=True)...:     return df.iloc[-1,:]    .​
oldest_staff = data.groupby('company',as_index=False).apply(get_oldest_staff)

pandas 数据透视表相关推荐

  1. Pandas简明教程:八、Pandas数据透视表

    透视表(pivot)是由微软发明的一个概念,1993年微软注册了PivotTable这一商标,而他们又在2020年正式撤销了注册. 关于透视表的话题随便搜搜就是一大堆,而有些地方可能都吹得很神了.透视 ...

  2. 对比Excel,学习pandas数据透视表

    Excel中做数据透视表 ① 选中整个数据源: ② 依次点击"插入"-"数据透视表" ③ 选择在Excel中的哪个位置,插入数据透视表 ④ 然后根据实际需求,从 ...

  3. python数据透视、有的value不能同时输出_python – Pandas数据透视表ValueError:索引包含重复的条目,无法重新整形...

    我有一个如下所示的数据帧(前3行): Sample_Name Sample_ID Sample_Type IS Component_Name IS_Name Component_Group_Name ...

  4. pandas数据透视表

    pivot_table创建数据透视表 类似excel的数据透视表,可以实现一些groupby完成不了的操作 常用参数使用 # 第一个参数data表示我们要传入的数据,index表示索引,columns ...

  5. Pandas数据分析15——pandas数据透视表和交叉表

    参考书目:<深入浅出Pandas:利用Python进行数据处理与分析> pandas对数据框也可以像excel一样进行数据透视表整合之类的操作.主要是针对分类数据进行操作,还可以计算数值型 ...

  6. 学习pandas数据透视表

    1.excel中做数据透视表 1)步骤如下 ① 选中整个数据源: ② 依次点击"插入"-"数据透视表" ③ 选择在Excel中的哪个位置,插入数据透视表 ④ 然 ...

  7. python数据透视表计数去除重复_如何从pandas数据透视表中删除重复值?

    因此,我试图将excel的一组指令复制到python中.问题是我对excel和正在发生的事情知之甚少.在 我有一个数据帧:no. name corrected no. corrected name 0 ...

  8. python pandas 数据透视表_python – Pandas数据透视表:列顺序和小计

    小计和 MultiIndex.from_arrays的解决方案.最后 concat和所有数据帧, sort_index并添加所有总和: #replace km/h and convert to int ...

  9. 【转载】使用Pandas创建数据透视表

    使用Pandas创建数据透视表 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas创建数据透视表 目录 pandas.pivot_table() 创建简单的数据透视表 增加一个行维度(inde ...

最新文章

  1. pythonweb开发-pythonWeb开发
  2. python3.6 django部署_Centos7 django+uwsgi+nginx+python3.6.8部署
  3. 专门用来显示大量数据的视图:AdapterView(1)
  4. AKS开讲啦! | DevOps with AKS
  5. r语言ggplot2 多线图绘制图例_plotnine: Python版的ggplot2作图库
  6. ExtJS4.2学习(17)表单基本输入控件Ext.form.Field(转)
  7. LeetCode刷题(48)--Remove Duplicates from Sorted List II
  8. 内推| 阿里全球化分析师战队集结令
  9. JS实现数字千位符格式化方法
  10. NMAKE 详解(整理转载)
  11. 分享一款好用的英语词频统计软件
  12. PAL电视制式知识点
  13. 华为服务变革转型ITR流程再造的核心精髓许浩明老师一篇文章总结!
  14. 用matlab演示dsb,DSB-AM的MATLAB仿真
  15. 排序算法(分类,时间复杂度)(快速排序,插入排序,希尔排序,选择排序,冒泡排序)
  16. 科普系列:AUTOSAR与OSEK网络管理比较(上)
  17. Matlab 最优化求解
  18. Android studio中如何利用Debug模式来调试程序
  19. 打字速度慢?您需要快捷回复
  20. HM10.1码率控制模块代码详解(1)---------序列级码率控制类TEncRCSeq介绍

热门文章

  1. upupw mysql崩溃_安装UPUPW后出现SQL语句运行错误解决办法
  2. Druid连接池源代码分析之三-回收连接
  3. 首次曝光!在线视频衣物精确检索技术_开启刷剧败明星同款时代
  4. 爆款电商直播间如何打造?
  5. 草根创业秘诀:如何在3月内单月出货10万元
  6. 模拟器和服务器共享文件夹,天天模拟器中共享文件夹以及导入文件怎么操作?共享文件夹和导入文件流程一览...
  7. 人体力学-正心力与偏心力
  8. NB智能水表是什么意思?
  9. 什么是堆叠面积图?如何解读?
  10. 2G到5G蜂窝网络的定位技术(E-CID、AoA、ToA、TDOA,5G PRS:DL-TDOA、UL-TDOA、DL-AoD、UL-AOA、E-CID)