使用Pandas实现Excel中的数据透视表的项目实践

 更新时间:2025年05月02日 11:18:49   作者:Bruce_xiaowei  
数据透视表是一种非常强大的工具,它可以帮助我们快速汇总、分析和可视化大量数据,本文主要介绍了使用Pandas实现Excel中的数据透视表的项目实践,感兴趣的可以了解一下

引言

在数据分析中,数据透视表是一种非常强大的工具,它可以帮助我们快速汇总、分析和可视化大量数据。虽然Excel提供了内置的数据透视表功能,但对于需要进行更复杂操作或自动化处理的场景,Python中的Pandas库提供了一个灵活且强大的替代方案。本文将通过具体的示例,展示如何使用Pandas实现类似Excel中的数据透视表功能。

准备工作

首先确保你的环境中已经安装了Pandas库。如果尚未安装,可以通过pip命令快速安装:

pip install pandas openpyxl

接下来,我们将创建一个模拟的真实销售数据表格文件 sales_data.xlsx,并使用Pandas读取该文件,然后生成数据透视表。

创建模拟销售数据

假设我们的 sales_data.xlsx 文件包含以下数据:

日期产品名称销售额地区销售员
2021-01-01产品A8000华东张三
2021-01-02产品B12000华北李四
2021-01-03产品C5000华南王五
2021-01-04产品D15000华东张三
2021-01-05产品E7000华中李四
2021-01-06产品F20000华北王五
2021-01-07产品G9000华东张三
2021-01-08产品H3000华南李四
2021-01-09产品I6000华中王五
2021-01-10产品J11000华东张三

代码实现及输出

首先,我们需要创建这个模拟数据并保存到Excel文件中,然后使用Pandas读取并生成数据透视表。

import pandas as pd

# 创建模拟数据
data = {
    '日期': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05',
            '2021-01-06', '2021-01-07', '2021-01-08', '2021-01-09', '2021-01-10'],
    '产品名称': ['产品A', '产品B', '产品C', '产品D', '产品E', '产品F', '产品G', '产品H', '产品I', '产品J'],
    '销售额': [8000, 12000, 5000, 15000, 7000, 20000, 9000, 3000, 6000, 11000],
    '地区': ['华东', '华北', '华南', '华东', '华中', '华北', '华东', '华南', '华中', '华东'],
    '销售员': ['张三', '李四', '王五', '张三', '李四', '王五', '张三', '李四', '王五', '张三']
}

# 将数据保存到Excel文件
df = pd.DataFrame(data)
df.to_excel('sales_data.xlsx', index=False)

# 重新加载数据
df = pd.read_excel('sales_data.xlsx')

# 显示前几行以检查数据
print("原始数据:")
print(df.head())

运行上述代码后,你将看到如下输出结果:

原始数据

        日期  产品名称  销售额   地区  销售员
0  2021-01-01    产品A   8000   华东    张三
1  2021-01-02    产品B  12000   华北    李四
2  2021-01-03    产品C   5000   华南    王五
3  2021-01-04    产品D  15000   华东    张三
4  2021-01-05    产品E   7000   华中    李四

示例1: 按地区和销售员汇总销售额

假设我们想要按地区和销售员汇总销售额,并计算每个组合的总销售额。

# 生成数据透视表
pivot_table1 = pd.pivot_table(df, values='销售额', index=['地区', '销售员'], aggfunc='sum')

print("\n按地区和销售员汇总销售额:")
print(pivot_table1)

按地区和销售员汇总销售额:

地区  销售员
华东  张三     33000
华北  李四     12000
      王五     20000
华南  王五      8000
华中  李四     13000
      王五      6000
Name: 销售额, dtype: int64

示例2: 按地区汇总销售额,并显示每个地区的总销售额

假设我们想要按地区汇总销售额,并显示每个地区的总销售额。

# 生成数据透视表
pivot_table2 = pd.pivot_table(df, values='销售额', index=['地区'], aggfunc='sum')

print("\n按地区汇总销售额:")
print(pivot_table2)

按地区汇总销售额:

地区
华北    32000
华东    33000
华南     8000
华中    13000
Name: 销售额, dtype: int64

示例3: 按地区和销售员汇总销售额,并显示每个组合的平均销售额

假设我们想要按地区和销售员汇总销售额,并显示每个组合的平均销售额。

# 生成数据透视表
pivot_table3 = pd.pivot_table(df, values='销售额', index=['地区', '销售员'], aggfunc='mean')

print("\n按地区和销售员汇总销售额(平均值):")
print(pivot_table3)

按地区和销售员汇总销售额(平均值):

地区  销售员
华东  张三    11000.0
华北  李四    12000.0
      王五    20000.0
华南  王五     5500.0
华中  李四     9333.333333
      王五     6000.0
Name: 销售额, dtype: float64

示例4: 按地区和销售员汇总销售额,并显示每个组合的最大销售额

假设我们想要按地区和销售员汇总销售额,并显示每个组合的最大销售额。

# 生成数据透视表
pivot_table4 = pd.pivot_table(df, values='销售额', index=['地区', '销售员'], aggfunc='max')

print("\n按地区和销售员汇总销售额(最大值):")
print(pivot_table4)输出结果

按地区和销售员汇总销售额(最大值):

地区  销售员
华东  张三    15000
华北  李四    12000
      王五    20000
华南  王五     5000
华中  李四     7000
      王五     6000
Name: 销售额, dtype: int64

结论

通过以上示例,我们可以看到Pandas库在处理数据透视表方面提供了非常强大和灵活的功能。无论是简单的汇总还是复杂的多条件聚合,Pandas都能轻松应对。掌握这些基本技巧后,你将能够更加高效地管理和分析自己的数据集,从而更快地获得有价值的洞察。希望这篇文章能帮助你在日常工作中更好地利用Pandas!

到此这篇关于使用Pandas实现Excel中的数据透视表的项目实践的文章就介绍到这了,更多相关Pandas Excel数据透视表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python聚类算法选择方法实例

    python聚类算法选择方法实例

    在本篇文章里小编给大家整理的是一篇关于python聚类算法选择方法实例,有需要的朋友们可以学习参考下。
    2021-07-07
  • Python库 Django 的简介、安装、用法入门教程

    Python库 Django 的简介、安装、用法入门教程

    Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,全方位解析Django的世界,感兴趣的朋友跟随小编一起看看吧
    2025-08-08
  • Python Decorator装饰器的创建方法及常用场景分析

    Python Decorator装饰器的创建方法及常用场景分析

    这篇文章主要介绍了Python Decorator装饰器的创建方法及常用场景,装饰器可以分成方法装饰器和类装饰器,他们的区别是一个是用函数实现的装饰器,一个是用类实现的装饰器,他们也都能在方法和类上进行装饰,需要的朋友可以参考下
    2022-07-07
  • Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)

    Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)

    这篇文章主要介绍了Pycharm中安装Pygal并使用Pygal模拟掷骰子,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • NumPy双曲函数与集合操作详解

    NumPy双曲函数与集合操作详解

    NumPy 提供了 sinh()、cosh() 和 tanh() 等 ufunc,它们接受弧度值并生成相应的双曲正弦、双曲余弦和双曲正切值,我们可以使用 NumPy 的 unique() 方法从任何数组中找到唯一元素,本文给大家详细介绍了NumPy双曲函数与集合操作,需要的朋友可以参考下
    2024-06-06
  • Python numpy和matlab的几点差异介绍

    Python numpy和matlab的几点差异介绍

    这篇文章主要介绍了Python numpy和matlab的几点差异,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • win10下opencv-python特定版本手动安装与pip自动安装教程

    win10下opencv-python特定版本手动安装与pip自动安装教程

    这篇文章主要介绍了win10下opencv-python特定版本手动安装与pip自动安装教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Django实现whoosh搜索引擎使用jieba分词

    Django实现whoosh搜索引擎使用jieba分词

    这篇文章主要介绍了Django实现whoosh搜索引擎使用jieba分词,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 详解python中sort排序使用

    详解python中sort排序使用

    这篇文章主要介绍了python中sort排序使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 浅谈flask源码之请求过程

    浅谈flask源码之请求过程

    这篇文章主要介绍了浅谈flask源码之请求过程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07

最新评论