Python+Pandas实现数据透视表

目录
  • 导入示例数据
  • 参数说明
  • 常用操作

大家好,我是丁小杰。

对于数据透视表,相信对于 Excel 比较熟悉的小伙伴都知道如何使用它,并了解它的强大之处,而在pandas中要实现数据透视就要用到pivot_table了。

导入示例数据

首先导入演示的数据集。

import pandas as pd

df = pd.read_csv('销售目标.csv')
df.head()

参数说明

主要参数:

  • data:待操作的 DataFrame
  • values:被聚合操作的列,可选项
  • index:行分组键,作为结果 DataFrame 的行索引
  • columns:列分组键,作为结果 DataFrame 的列索引
  • aggfunc:聚合函数/函数列表,默认 numpy.mean 这里要注意如果 aggfunc 中存在函数列表,则返回的 DataFrame 中会显示函数名称
  • fill_value:默认 None,可设定缺省值
  • dropna:默认 True,如果列的所有值都是 NaN,将被删除;False 则保留
  • margins:默认 False,设置为 True 可以添加行/列的总计
  • margins_name:默认显示 'ALL',当 margins = True 时,可以设定 margins  行/列的名称

常用操作

使用pivot_table时必须要指定index,因为计算时要根据index进行聚合。

pd.pivot_table(df.head(20),
               index='订单日期',
               aggfunc=np.sum)

通过指定value来选择被聚合的列。

pd.pivot_table(df.head(20),
               values='销售目标',
               index='订单日期',
               aggfunc=np.sum)

当只指定index进行聚合时,其实用groupby可以实现同样的效果。

df.head(20).groupby(['订单日期'])['销售目标'].sum().reset_index()

添加columns参数,对列分组。

pd.pivot_table(df.head(10),
               values='销售目标',
               index=['订单日期', '类别'],
               columns='细分',
               aggfunc=np.sum)

对于上面结果中的空值,使用fill_value参数统一填充为0

pd.pivot_table(df.head(10),
               values='销售目标',
               index=['订单日期', '类别'],
               columns=['细分'],
               aggfunc=np.sum,
               fill_value=0)

现在按年份来统计销售数据,注意此时的aggfunc参数,当参数值包含列表时,在结果DataFrame中就会显示函数名称。

pd.pivot_table(df,
               values='销售目标',
               index=['年份', '类别'],
               columns='细分',
               aggfunc=[np.sum])

如果需要添加合计列,只需指定margins=True即可,同时根据需要指定合计名称。

pd.pivot_table(df,
               values='销售目标',
               index=['年份', '类别'],
               columns='细分',
               aggfunc=np.sum,
               margins=True,
              margins_name='合计')

当然与groupby类似,对于计算函数我们可以同时指定多种方式。

pd.pivot_table(df,
               values='销售目标',
               index=['年份', '类别'],
               columns=['细分'],
               aggfunc={'销售目标': [max, np.sum]},
               fill_value=0)

到此这篇关于Python+Pandas实现数据透视表的文章就介绍到这了,更多相关Python 数据透视表内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python 用pandas实现数据透视表功能

    透视表是一种可以对数据动态排布并且分类汇总的表格格式.对于熟练使用 excel 的伙伴来说,一定很是亲切! pd.pivot_table() 语法: pivot_table(data, # DataFrame values=None, # 值 index=None, # 分类汇总依据 columns=None, # 列 aggfunc='mean', # 聚合函数 fill_value=None, # 对缺失值的填充 margins=False, # 是否启用总计行/列 dropna=True,

  • 用Python实现数据的透视表的方法

    在处理数据时,经常需要对数据分组计算均值或者计数,在Microsoft Excel中,可以通过透视表轻易实现简单的分组运算.而对于更加复杂的分组运算,Python中pandas包可以帮助我们实现. 1 数据 首先引入几个重要的包: import pandas as pd import numpy as np from pandas import DataFrame,Series 通过代码构造数据集: data=DataFrame({'key1':['a','b','c','a','c','a',

  • Python实现数据透视表详解

    目录 1.groupby + agg 2. crosstab 3.groupby + pivot pivot_table 总结 用Python里的Pandas可以实现,虽然感觉Excel更方便 1.groupby + agg 不够直观,不好看 对贷款年份,贷款种类创建数据透视 train_data.groupby(['year_of_loan', 'class']).agg(d_roat =('isDefault', 'mean')) 2. crosstab pandas.crosstab(in

  • Pandas使用stack和pivot实现数据透视的方法

    目录 前言 一.经过统计得到多维度指标数据 二.使用unstack实现数据的二维透视 三.使用pivot简化透视 四.stack.unstack.pivot的语法 1.stack 2.unstack 3.pivot 总结 前言 笔者最近正在学习Pandas数据分析,将自己的学习笔记做成一套系列文章.本节主要记录Pandas中使用stack和pivot实现数据透视. 一.经过统计得到多维度指标数据 非常场景的统计场景,指定多个维度,计算聚合后的指标 实例:统计得到"电影评分数据集",每个

  • Python+Pandas实现数据透视表

    目录 导入示例数据 参数说明 常用操作 大家好,我是丁小杰. 对于数据透视表,相信对于 Excel 比较熟悉的小伙伴都知道如何使用它,并了解它的强大之处,而在pandas中要实现数据透视就要用到pivot_table了. 导入示例数据 首先导入演示的数据集. import pandas as pd df = pd.read_csv('销售目标.csv') df.head() 参数说明 主要参数: data:待操作的 DataFrame values:被聚合操作的列,可选项 index:行分组键,

  • pandas实现excel中的数据透视表和Vlookup函数功能代码

    在孩子王实习中做的一个小工作,方便整理数据. 目前这几行代码是实现了一个数据透视表和匹配的功能,但是将做好的结果写入了不同的excel中, 如何实现将结果连续保存到同一个Excel的同一个工作表中? 还需要探索. import pandas as pd import numpy as np a = [1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1701,1702,1703,1704] for i in a: b = st

  • Pandas数据分析之pandas数据透视表和交叉表

    目录 前言 整理透视 pivot 聚合透视 Pivot Table 聚合透视高级操作 交叉表crosstab() 数据融合melt() 数据堆叠 stack 前言 pandas对数据框也可以像excel一样进行数据透视表整合之类的操作.主要是针对分类数据进行操作,还可以计算数值型数据,去满足复杂的分类数据整理的逻辑. 首先还是导入包: import numpy as np import pandas as pd 整理透视 pivot 首先介绍的是最简单的整理透视函数pivot,其原理如图: pi

  • C#如何操作Excel数据透视表

    一.概述 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等,可动态地改变透视表版面布置,也可以重新安排行号.列标和页字段.当改变版面布置时,数据透视表也会按照新的布置来进行更新,可以说是一个功能强大的数据分析工具.因此,本篇文章将介绍在C# 中关于Excel数据透视表的操作示例,示例内容主要包含以下要点: 1. 创建透视表 (1)创建数据缓存 (2)创建数据透视表 (3)添加行字段和列字段 (4)添加值字段 (5)设置样式 2.  设置行折叠.展开 3. 

  • Python Pandas实现数据分组求平均值并填充nan的示例

    Python实现按某一列关键字分组,并计算各列的平均值,并用该值填充该分类该列的nan值. DataFrame数据格式 fillna方式实现 groupby方式实现 DataFrame数据格式 以下是数据存储形式: fillna方式实现 1.按照industryName1列,筛选出业绩 2.筛选出相同行业的Series 3.计算平均值mean,采用fillna函数填充 4.append到新DataFrame中 5.循环遍历行业名称,完成2,3,4步骤 factordatafillna = pd.

  • VBA处理数据与Python Pandas处理数据案例比较分析

    需求: 现有一个 csv文件,包含'CNUM'和'COMPANY'两列,数据里包含空行,且有内容重复的行数据. 要求: 1)去掉空行: 2)重复行数据只保留一行有效数据: 3)修改'COMPANY'列的名称为'Company_New': 4)并在其后增加六列,分别为'C_col','D_col','E_col','F_col','G_col','H_col'. 一,使用 Python Pandas来处理: import pandas as pd import numpy as np from p

  • MySQL/MariaDB 如何实现数据透视表的示例代码

    前文介绍了Oracle 中实现数据透视表的几种方法,今天我们来看看在 MySQL/MariaDB 中如何实现相同的功能. 本文使用的示例数据可以点此下载. 使用 CASE 表达式和分组聚合 数据透视表的本质就是按照行和列的不同组合进行数据分组,然后对结果进行汇总:因此,它和数据库中的分组(GROUP BY)加聚合函数(COUNT.SUM.AVG 等)的功能非常类似. 我们首先使用以下 GROUP BY 子句对销售数据进行分类汇总: select coalesce(product, '[全部产品]

  • python Pandas中数据的合并与分组聚合

    目录 一.字符串离散化示例 二.数据合并 2.1 join 2.2 merge 三.数据的分组和聚合 四.索引 总结 一.字符串离散化示例 对于一组电影数据,我们希望统计电影分类情况,应该如何处理数据?(每一个电影都有很多个分类) 思路:首先构造一个全为0的数组,列名为分类,如果某一条数据中分类出现过,就让0变为1 代码: # coding=utf-8 import pandas as pd from matplotlib import pyplot as plt import numpy as

随机推荐