用代码实现Excel的透视功能,原来这么简单

84 阅读4分钟

大家好,我是楠少,用通俗易懂的方式,教小白学python。

今天,我们开始学习《30讲Python+Excel数据分析》课程的第9讲。

这一讲是介绍如何用Python代码实现Excel表格中的数据透视的功能。

你们可以想象这样一个场景,有一个表格,需要筛选下年龄在18到30岁之间的学生,这在Excel中很好操作,但是如果数据量很大的话,那在Python中该如何实现效率最高呢?

答案是,用Python支持的pandas库来实现。

所以,基于这个场景需求,我们团队就开发了用Python代码就能实现筛选excel表格数据然后对其进行操作的功能。

怎么样,是不是很好奇我们这个代码是如何写的呢?

别急,下面我们会给你娓娓道来。

01

虽然,我们这个功能的需求很好理解,就是实现自动筛选excel表格数据并对其进行操作的功能,但是关键是我们如何用Python代码来实现。

好吧,这里就不给大家卖关子了,我们直接看代码吧。

代码演示:


# 导入 pandas 模块,并给它一个简短的别名 pd,方便后续调用
import pandas as pd

# 定义一个函数,用于判断年龄是否在 18 到 30 之间(包括 18,不包括 30)
def age_18_to_30(a):
    return 18 <= a < 30

# 定义一个函数,用于判断分数是否在 80 到 100 之间(包括 80,不包括 100)
def level_nice(s):
    return 80 <= s < 100

# 使用 pandas 的 read_excel 函数读取 Excel 文件
# r"C:\Users\zzqyy\Desktop\Pandas玩转Excel\08数据筛选,过滤\example.xlsx" 是 Excel 文件的路径
# index_col="学号" 表示将 "学号" 这一列作为数据框的索引列


example = pd.read_excel(r"C:\Users\zzqyy\Desktop\Pandas玩转Excel\08数据筛选,过滤\example.xlsx", index_col="学号")

# 使用 loc 方法结合 apply 方法对数据进行筛选
# example.年龄.apply(lambda a:18 <= a <30) 表示对 "年龄" 列中的每个值应用 lambda 函数,判断是否满足 18 <= a < 30
# example.分数.apply(lambda s:80 <= s < 100) 表示对 "分数" 列中的每个值应用 lambda 函数,判断是否满足 80 <= s < 100
# loc 方法用于根据条件筛选数据,只有满足条件的行才会被保留
# 这里使用了链式调用,先筛选出年龄符合条件的行,再从这些行中筛选出分数符合条件的行


example = example.loc[example.年龄.apply(lambda a: 18 <= a < 30)] \
    .loc[example.分数.apply(lambda s: 80 <= s < 100)]

# 打印筛选后的数据框,查看结果
print(example)

好的,通过代码演示和代码注释,我相信你一定已经学会了该如何使用我们这个脚本。

如果你还没有学会,那就照着我们的代码去手动敲一遍,感受一下敲代码的美妙,等你敲个几遍,相信你就一定能记住这几行代码了。

但是,这里我还是要提醒一下:

要想让这几行代码正常运行,你们需要把运行代码的环境给安装配置好。

不知道如何配置环境的可以看《30讲Python+Excel数据分析》的前面1讲内容,我们真的是手把手地教你如何配置环境的,相信我,一点都不难哈。

02

OK,到这里我要告诉大家的是,今天这篇文章教给大家的代码的视频讲解都在《30讲Python+Excel数据分析》这套课程的第9讲内容中了,对讲解视频感兴趣的可以去本套课程中学习一下。

这里不得不说的一点是,我们这个课程每一讲都是独立的案例场景讲解。

所以,你们完全可以根据自己的兴趣找到自己感兴趣的内容优先学习,这个不会影响学习效果的。

当然了,我们这门课程的每一节课都包含:视频、文档、代码、软件和答疑群。

所以你们完全不用担心学不会的问题,可以说,只要你认真跟着学习,认真练习敲代码,没有学不会的可能。

写在最后:

我们这套《30讲Python+Excel数据分析》课程具备以下2个特点:

第一,适合小白不需要学习复杂的编程知识,拿来就用。

第二,内容丰富,涵盖热门的数据分析的需求。

所以,如果你对这门《30讲PythonExcel数据分析》感兴趣,可以点击左边蓝字报名咨询。