工欲善其事必先利其器,大数据、AI时代,目前Python 最新版本是3.11 ,而Pandas也刚刚完成大升级,进入 2.0.0时代。
Pandas是一种用于数据操作和数据分析的Python库。它提供了丰富的数据结构和函数,使我们可以轻松地处理各种数据,包括时间序列、表格型数据、矩阵数据等等。它的灵活性、易用性和强大的数据处理能力使其成为数据科学家、数据分析师、量化交易员等相关领域的必备工具之一。
Pandas主要包含Series和DataFrame两种数据结构。Series是一种一维数组,它可以存储不同类型的数据,每个元素都有一个相应的索引,使我们可以通过索引来访问和操作数据。DataFrame则是一个二维表格,它提供了多种数据操作和处理方式,包括数据选择、筛选、排序、分组、聚合、合并、透视表等等。
此外,Pandas还可以与其他流行的Python库和工具进行集成,如NumPy、Matplotlib、SciPy等等,给使用者提供更为丰富和高效的数据分析和可视化工具。
大数据时代,Pandas俨然已成为最流行的大数据预处理工具。
这段对高手是废话,但考虑到文章可读性,还是展示一下。
纵览整个Pandas 2.0.0 的 release note 部分,最为主要的更新就是增加了对 Apache Arrow 的支持,在其基础上,让 Pandas 2 拥有比以往更强的性能,更优的执行效率和支持更多的数据格式。
本次升级的亮点是后台增加了对pyarrow的支持。pyarrow后端是pandas 2.0的一个新功能,它允许用户使用Apache Arrow作为pandas DataFrames和Series的替代数据存储格式。这意味着当你在pandas 2.0中读或写Parquet文件时,它将默认使用pyarrow来处理数据,从而使操作更快、更节省内存。
Pyarrow是一个提供列式内存格式的库,它是一种组织数据的方式,使其更容易读取和并行处理。在pandas 2.0中使用pyarrow后端可以使数据操作更快、更节省内存,尤其是在处理大型数据集时。PyArrow的引入将提大地提高了pandas的性能。
如下所示,对于一个250万行的字符串系列,使用PyArrow比NumPy快31.6倍。
pip install pandas==10000
通过报错,发现pandas有如下版本:
ERROR: Could not find a version that satisfies the requirement> pandas10000 (from versions: 0.1, 0.2, 0.3.0, 0.4.0, 0.4.1, 0.4.2,
0.4.3, 0.5.0, 0.6.0, 0.6.1, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.8.0, 0.8.1, 0.9.0, 0.9.1, 0.10.0, 0.10.1, 0.11.0, 0.12.0, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.15.0, 0.15.1, 0.15.2, 0.16.0, 0.16.1, 0.16.2, 0.17.0, 0.17.1, 0.18.0, 0.18.1, 0.19.0, 0.19.1, 0.19.2, 0.20.0, 0.20.1, 0.20.2, 0.20.3, 0.21.0, 0.21.1, 0.22.0, 0.23.0, 0.23.1, 0.23.2, 0.23.3, 0.23.4, 0.24.0, 0.24.1, 0.24.2, 0.25.0, 0.25.1, 0.25.2, 0.25.3, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.4.0rc0, 1.4.0, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.5.0rc0, 1.5.0, 1.5.1, 1.5.2, 1.5.3, 2.0.0rc0, 2.0.0rc1, 2.0.0) ERROR: No matching distribution found for pandas10000
可以看到1.5.3版本之后,还有 2.0.0rc0, 2.0.0rc1,最后才是 2.0.0正式版本。
pip install pandas --upgrade
笔者之前已安装了1.5.3版本,升级后直接到2.0.0正式版本。网上有些pip install pandas==2.0.0rc0,只是安装正式版前面的版本,现在已经不需要了,除非你也是想参与测试而已。
在2.0.0之前还有rc版本,这个rc是什么意思呢? RC=Release Candidate,也就是”发布候选版”,它不是最终的版本,而是最终版(RTM=Release To Manufacture)之前的一个版本。可以看到在正式2.0.0版本之前,还曾发布了rc0,rc1版本,说明进行了充分测试。
测试一下,在刚才窗口输入python后回车,然后输入以下语句,显示2.0.0表示导入包成功。
(base) C:\Users\Administrator>python
Python 3.10.9 | packaged by Anaconda, Inc. | (main, Mar 1 2023, 18:18:15) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>> print(pd.__version__)
2.0.0
>>> exit(0)
(base) C:\Users\Administrator>
Pandas 配上 Python 3.11 性能提升不止一点点,非常值得升级体验。不过笔者目前安装的Anaconda其Python版本是3.10,不过不影响Pandas 2.0.0的发挥和使用。
网上关于测试升级后的效果文章很多,这里就不啰嗦了。使用中有情况再补充吧。