想必大家都用过excel, 肯定会熟悉excel中的透视表, python中pandas.pivot就是在DataFrame表格中实现这个操作, 什么? 连透视表都不知道? 没事,往下看就知道了

目录

开始使用pivot_table

index参数

values

columns

fill_value

aggfunc

margin


开始使用pivot_table

整个最简单的天气数据, 有日期, 天气, 最低温, 最高温, 空气指标五项数据

日期,天气,最低温,最高温,空气指标
2021-12-28,阵雪,-23,-15,优
2021-12-29,阴,-24,-16,优
2021-12-30,晴,-22,-16,良
2021-12-31,阵雪,-19,-10,良
2021-01-01,多云,-20,-13,中
2021-01-02,多云,-22,-12,中
2021-01-03,晴,-20,-13,优
2021-01-04,多云,-19,-8,良
2021-01-05,晴,-20,-16,良
2021-01-06,多云,-20,-10,中
2021-01-07,晴,-20,-7,中
2021-01-08,阴,-22,-13,中
2021-01-09,阴,-21,-11,优

先用一个DataFrame读出来,并打印(我比较喜欢冰淇淋ic)

from icecream import ic
import pandas as pd
import numpy as npweather = pd.read_csv("../resources/weather.csv", date_parser=True)
ic(weather)

平平无奇的表格数据罢了

index参数

现在使用一下pivot_table函数, 加一个属性index=["天气"](当然也可以加两个)

wide_table = (weather.pivot_table(index=["天气"], # 透视表行索引为天气, 按不同的天气统计其他值
))
ic(wide_table)

这时显示的数据是各种"天气"的平均值(平均最高温, 平均最低温...,空气指标不是数字当然没有平均值)

values

如果再使用一个参数values=["最高温"], 默认显示的是除index的所有值, 加入values之后就只显示values

wide_table = (weather.pivot_table(index=["天气"], # 透视表行索引为天气, 按不同的天气统计其他值values=["最高温"], # 要展示的值(除了index)
))
ic(wide_table)

只显示了"最高温"

columns

只有index说明我们只在行这边统计, 加上columns可以在列上也统计平均值

例如加上columns=["空气指标"]

wide_table = (weather.pivot_table(index=["天气"], # 透视表行索引为天气, 按不同的天气统计其他值columns=["空气指标"], # 透视表列索引values=["最高温"], # 要展示的值(除了index)
))
ic(wide_table)

这样列上统计了不同"空气指标"的数据平均值 (但是总感觉不是很好看......)

fill_value

fill_value 就是用一个什么值来代替表格中出现的空值, 很简单理解

aggfunc

本来我们一直都是在统计平均值(默认),在aggfunc可以统计其他的指标(如中位数, 总和等)

wide_table = (weather.pivot_table(index=["天气"], # 透视表行索引为天气, 按不同的天气统计其他值values=["最高温"], # 要展示的值(除了index)fill_value=0, # 填补空值aggfunc=[np.median, np.mean], # aggfunc默认统计的是平均值(一个值),也可以让他统计中位数等等
))
ic(wide_table)

这时不仅统计了平均值, 还统计了中位数

margin

值是布尔值, 是否在边缘统计全部的aggfunc(默认是平均值)

wide_table = (weather.pivot_table(index=["天气"], # 透视表行索引为天气, 按不同的天气统计其他值values=["最高温"], # 要展示的值(除了index)fill_value=0, # 填补空值aggfunc=[np.median, np.mean], # aggfunc默认统计的是平均值(一个值),也可以让他统计中位数等等margins=True
))
ic(wide_table)

多出一行All, 统计的是全部的平均值(中位数)

喜欢的朋友点个赞吧[咧嘴笑]

pandas.pivot_table详解相关推荐

  1. Pandas知识点-详解行列级批处理函数apply

    Pandas知识点-详解行列级批处理函数apply 在Pandas中,DataFrame和Series等对象需要执行批量处理操作时,可以借用apply()函数来实现. apply()的核心功能是实现& ...

  2. Python 数据合并方法 —— Pandas concat() 详解

    详解concat 参数说明 concat说明 ignore_index 示例 Example Reference 参数说明 pandas.concat(objs, axis=0, join='oute ...

  3. python pandas库详解_Pandas 库的详解和使用补充

    pandas 库总体说明 Pandas 基亍 NumPy.SciPy 补充了大量数据操作功能,能实现统计.凾组.排序.透规 表,可以代替 Excel 的绛大部凾功能. Pandas 主要有 2 种重要 ...

  4. python pivot函数筛选_Python pivot_table详解

    再来介绍pandas库里的pivot_table()函数.pivot_table()与pivot()比较类似.其官方定义如下所示: DataFrame.pivot_table(values=None, ...

  5. 【python数据挖掘课程】二十三.时间序列金融数据预测及Pandas库详解

    这是<Python数据挖掘课程>系列文章,也是我上课内容及书籍中的一个案例.本文主要讲述时间序列算法原理,Pandas扩展包基本用法以及Python调用statsmodels库的时间序列算 ...

  6. python csv pandas_Python Pandas——Read_csv详解

    目前最常用的数据保存格式可能就是CSV格式了,数据分析第一步就是获取数据,怎样读取数据至关重要. 本文将以pandas read_csv方法为例,详细介绍read_csv数据读取方法.再数据读取时进行 ...

  7. Pandas index详解

    总括 pandas里对索引的操作主要有 DataFrame.rename DataFrame.rename_axis DataFrame.reindex DataFrame.reindex_axis ...

  8. pandas.read_csv() 详解与如何合适的读取行序号与列名

    作为常用的函数,pandas.read_csv() 用于读取各种数据文件(.dat.txt.csv等),在这里做一个详细的解释. 灵活运用index_col与header准确的读取csv文件的行索引与 ...

  9. Python之Pandas连接详解

    一.关系型连接 1. 连接的基本概念 把两张相关的表按照某一个或某一组键连接起来是一种常见操作,例如学生期末考试各个科目的成绩表按照姓名和班级连接成总的成绩表,又例如对企业员工的各类信息表按照员工ID ...

最新文章

  1. SAP MM 事务代码MI31之思考之续集
  2. python怎样入门_python怎么入门啊?
  3. RocketMQ消息支持的模式-消息异步发送
  4. 清除浮动造成的影响的解决方案总结
  5. 哈夫曼树(利用python实现)
  6. oracle动一下卡一下,记录一次Oracle很卡事件
  7. 08年最佳短篇小说《误解》
  8. mysql tnsnames.ora_tnsnames.ora配置注意(连接新的数据库)
  9. 驰骋工作流程引擎在流程设计发生变化后如何处理?
  10. 江苏2021168查询高考成绩,重磅!高考成绩查询!!
  11. 为什么我的Linux主机内存用的那么快?
  12. [2018.08.09 T1] 数学题
  13. F2FS源码分析-3.1 [F2FS 文件创建和删除部分] 一般文件的创建
  14. linux系统 打开网页,使用Linux终端浏览网页
  15. 2014年计算机一级考试题目,2014年计算机一级考试PS模拟试题
  16. 快光慢光的产生原理及群速度相速度的定义
  17. 如何快速打开控制面板?如何让控制面板在桌面显示?
  18. RPG Maker MV 遇敌对战
  19. 看京东如何把Intel RealSense技术用在物流上
  20. 圈叉棋、套娃圈叉棋、嵌套圈叉棋、九个井字棋

热门文章

  1. 菜鸟笔记-DuReader阅读理解基线模型代码阅读笔记(八)—— 模型训练-训练
  2. POJ3666 线性dp+维度优化
  3. Xshell密钥认证
  4. opencv 编程总结与备忘
  5. Smart3D集群建模步骤
  6. 3、Qt5 主窗口点击按钮 弹出另一个自定义窗口
  7. 通往古埃及文明的钥匙 ———— 罗塞塔石碑
  8. mysql印度时区_一次 JDBC 与 MySQL 因 “CST” 时区协商误解导致时间差了 14 或 13 小时的排错经历...
  9. JAVA技术交流(学习群):51194570;JAVA技术交流(应用群):51194804
  10. SpringBoot入门到精通 idea教学 (余胜军通俗易懂版本)