前言
前几天有朋友咨询我关于学习 Python
和 VBS
的疑问,因为他想要将自己繁杂的 Excel
操作自动化,他了解到通过 Python
和 VBS
都可以达到他的目的,所以他在纠结到底学哪个?因为我就是搞 Python
得嘛,所以我当场就建议他学 Python
。
但是为了让这位朋友能够从实践上体验到 Python
的简洁高效,今天我们就一起来进入 Pandas
的 Excel
世界。
安装
pip install pandas 复制代码
当遇到安装出错时,一般可以通过升级
pip
和升级setuptools
解决。
实践
关于 DataFrame
DataFrame
是 Pandas
中的一种抽象数据对象(表格类型),Excel
中的数据都可以转换为 DataFrame
对象。
DataFrame 和 Excel 的属性对照表
pandas | Excel |
DataFrame | sheet 页 |
Series | 列 |
Index | 行号 |
row | 行 |
NaN | 空单元格 |
数据输入输出
首先我们在 Jupyter
中使用 Pandas
打印一个两行两列的数据表。
然后我们将以上数据写入 excel
文件,最后读取 excel
文件的数据并且打印出来。
数据限制
首先我们将测试表格的数据增加到 10
行 10
列。
我们可以重新读取这个表格,只展示前 5
行数据。
如果你想指定某行为列名(起始行),可以使用
header
参数,默认为0
。
如上,你会发现,数据以第
5
行作为起始行,只显示了”前五行“。
我们还可以只展示列 10
大于 10
的数据。
你会发现,这一切都是如此简单优雅。
数据处理
我们如果想要对表格的数据进行处理,我们可以这样做。假设对列 6
的数据除以 2
。
其他的操作都是类似的,不再一一展示了。
以上展示的都是基于列的操作,关于行的操作如何实现呢?简单,你会发现关于列的操作都是用的列名,那对行进行操作就用到了行的索引。
行的操作
展示第 3
行数据。
给第 4
行数据全部加 10
。
我相信看到这里,你对其他的操作都已经心领神会了。
对单元格的操作
通常除了行列操作,我们可能会需要对某个单元格进行操作。
对单元格的定位需要借助
DataFrame
的方法来实现。但是呢,Pandas
为我们提供了不止一种方法,关于这几种方法的区别请看下图。
方法 | 解释 |
at | 通过行/列标签去唯一定位单元格 |
loc | 通过标签或者数组来访问单元格 |
iat | 通过整数位置访问行/列对应的单元格 |
定位第 2 行第二列的单元格。
假设,我们想要对列 3
行 3
的数据 4
进行平方操作。
最后
其他 Pandas
对 Excel
的支持远不止这些,其中像我们常见的 Excel
公式,数据格式,排序,查找替换,透视图等等功能都是支持,甚至可以说比原本的 Excel
的功能更加丰富和自由。强烈建议有兴趣的同学去动手试一试 Pandas
,一定会带给你”惊喜“。