Pandas 2.0 版本要来了

Pandas2.0引入了PyArrow后端,提供更快的内存操作和Parquet文件处理,优化了缺失值处理,使用写入时复制技术减少内存使用,并扩展了Index类型支持。这些改进显著提升了在处理大规模数据集时的性能。

来源:数据STUDIO

Pandas[1]是一个用于处理数据的Python库,在Python开发者中非常流行。相信你已经对他非常熟悉了。

随着现在数据量越来越多,pandas的局限性也日渐凸显,在处理大数据时非常恼火,从而选择更加合适的工具,如pyspark等大数据处理框架。

而 Pandas 2.0 也是朝着这个方向迈出的一步,接下来我们一起聊一聊Pandas增加和改进的内容。

更快和更有效的内存操作

本次最大的亮点可谓是他们在后台增加了对pyarrow的支持,甚至被定义为一场革命(revolution)。

718856ddcd243d9545bf2d5ff42a40a6.png

pyarrow后端是pandas 2.0的一个新功能,它允许用户使用Apache Arrow作为pandas DataFrames和Series的替代数据存储格式。

这意味着当你在pandas 2.0中读或写Parquet文件时,它将默认使用pyarrow来处理数据,从而使操作更快、更节省内存。

什么是Pyarrow?

6245e70d67b0549755b353f462385b11.jpeg

Pyarrow是一个提供列式内存格式的库,它是一种组织数据的方式,使其更容易读取和并行处理。

总之,在pandas 2.0中使用pyarrow后端可以使数据操作更快、更节省内存,尤其是在处理大型数据集时。

8b7ad9396aceae27e88f6047b8bbd12f.png

缺失值处理

PyArrow更适合于表格数据,使其能够轻松地存储字符串,最重要的是,使空值处理也更容易。

先前Pandas依靠NumPy来保存表格数据,例如字符串、数字,也包括更复杂的数据。然而,NumPy也有其局限性,从Marc Garcia[2]的文章中可以看到,NumPy不支持字符串和缺失值。因此,对于缺失的数字,需要使用一个特殊的数字或NaN。这意味着对于每一种数据类型,缺失值的实现都很复杂,处理起来也很棘手。

而这些问题在Pandas2.0将会完美解决,在PyArrow中处理缺失数据时,在数据数组的旁边会有第二个数组,表示一个值是否存在,使得对空值的处理更加简单明了。

写入时复制优化

这是一种内存优化技术,类似于Spark执行代码的方式,在pandas中用来提高性能,减少处理大数据集时的内存使用。

当复制一个pandas对象,比如DataFrame或Series,pandas不是立即创建一个新的数据副本,而将创建一个对原始数据的引用,并推迟创建一个新的副本,直到以某种方式修改数据。

这意味着,如果你有相同数据的多个副本,它们都可以引用相同的内存,直到你对其中一个进行修改。这可以大大减少内存的使用,提高性能,因为你不需要对数据进行不必要的复制。

总的来说,写入时复制是一种强大的优化技术,可以帮助你更有效地处理大型数据集,并减少内存。

9050f5243661aa93532b4352c0122685.png
索引

更好的索引、更快的访问和计算

以前,pandas只支持int64、uint64和float64类型。

而在Pandas 2.0中,Index将支持所有NumPy的数字类型,包括int8, int16, int32, int64, uint8, uint16, uint32, uint64, float32和float64。

因此,以前创建64位索引的操作现在可以创建较低位数的索引,如32位索引。

d8ddb0133e0f38f85d4a08177b09c430.png
Pandas 2.0将更快

PyArrow的引入将提大地提高了pandas的性能。这里提供了一个例子,对于一个250万行的字符串系列,在笔记本电脑上使用PyArrow比NumPy快31.6倍。

bea8e63e9079425dfa06330643d98e86.png

对于pandas重度依赖者来说,这无疑是个非常棒的消息,让我们一起期待下吧~

参考资料

[1]

Pandas: https://pandas.pydata.org/

[2]

Marc Garcia: https://datapythonista.me/blog/pandas-20-and-the-arrow-revolution-part-i 

-------- End --------

推荐👇同名微信视频号

614ef337dfecb7ba6ff8c44c37878610.png

dab531fcd34440a4a7e552f911c1775f.jpeg
图解Pandas

图文00-内容框架介绍 | 图文01-数据结构介绍 | 图文02-创建数据对象 | 图文03-操作Excel文件 | 图文04-常见的数据访问 | 图文05-常见的数据运算 |  图文06-常见的数学计算 | 图文07-常见的数据统计 | 图文08-常见的数据筛选 |  图文09-常见的缺失值处理 | 图文10-数据合并操作 | 图文11-Groupby分组操作

8b3e82695939ca58f1189b5b45221782.jpeg 4eef2fafbea7d7bc13a27daad64cb7ac.jpeg
<think>好的,我现在需要帮助用户解决如何下载并安装Pandas2.0的问题。首先,我得回顾用户的问题和提供的引用内容,确保回答准确。用户提到参考了三个引用,其中引用[1]和[3]都涉及Pandas2.0的发布,而引用[2]是关于在Python2.7中安装旧版本numpy和pandas的经验。不过用户现在的需求是安装Pandas2.0,这应该是在Python3环境中,因为Pandas2.0可能不支持Python2.7。首先,我需要确认用户的环境。Pandas2.0需要Python3.8及以上版本,所以用户需要先检查自己的Python版本。如果用户还在使用Python2.7,可能需要先升级到Python3,或者使用虚拟环境。但根据用户的问题,他们可能已经知道需要Python3,但需要具体的安装步骤。 根据引用[1]中的信息,pipinstall默认安装的是Pandas2.0,所以理论上用户可以直接用pip installpandas来安装最新版。但用户可能想要特定版本,比如2.0.0而不是更高的小版本。这时候需要使用pip installpandas==2.0.0。同时,用户可能遇到依赖问题,比如需要正确版本的numpy。引用[3]提到Pandas2.0的Index支持更多NumPy类型,可能需要numpy的某个版本,可能需要安装时自动处理依赖。用户可能遇到的另一个情况是下载速度慢,这时候可以建议使用国内镜像源,比如豆瓣源或者清华源,如使用-i参数指定镜像。引用[2]中用户手动安装whl文件,但Pandas2.0可能已经可以通过pip直接安装,不需要手动下载whl,除非有特殊情况,比如网络问题导致无法在线安装。另外,需要注意用户是否在使用虚拟环境,建议他们创建并激活虚拟环境,避免影响全局配置。例如,使用venv或者conda环境。总结步骤应该是: 1.确认Python版本符合要求(>=3.8) 2.使用pip安装特定版本pandas:pip installpandas==2.0.03.如果有需要,使用镜像源加速下载4.处理可能的依赖问题,比如升级numpy5.验证安装是否成功同时,需要提醒用户,如果遇到权限问题,可以加上--user选项,或者在虚拟环境中安装。此外,如果用户之前安装过旧版本,可能需要先卸载旧版:pip uninstall pandas,然后再安装新版。 最后,生成相关问题,可能涉及如何验证安装版本,如何升级Python,如何处理依赖冲突,或者与其他库如Polars的比较,如引用[1]中提到的性能对比。</think>### 如何下载并安装Pandas 2.0 #### 步骤说明 1. **确认Python版本要求** Pandas 2.0需要Python 3.8及以上版本[^3]。可通过以下命令检查当前Python版本: ```bash python --version ``` 若版本低于3.8,需先升级Python环境。 2. **使用pip直接安装** 通过pip指定版本号安装: ```bash pip install pandas==2.0.0 ``` 若需加速下载,可添加国内镜像源(如豆瓣源): ```bash pip install pandas==2.0.0 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com ``` 3. **验证安装结果** 在Python环境中执行以下代码确认版本: ```python import pandas as pd print(pd.__version__) # 应输出2.0.0 ``` 4. **处理依赖问题** - 若安装时报错提示`numpy`版本不兼容,可先升级numpy: ```bash pip install numpy --upgrade ``` - 若存在旧版Pandas冲突,建议先卸载旧版本: ```bash pip uninstall pandas ``` #### 特殊情况 - **离线安装**:若需手动下载`.whl`文件,可在[PyPI官网](https://pypi.org/project/pandas/2.0.0/#files)选择对应系统的文件,通过以下命令安装: ```bash pip install pandas-2.0.0-cp38-cp38-win_amd64.whl ``` - **虚拟环境推荐**:使用`venv`或`conda`隔离环境以避免依赖冲突: ```bash python -m venv pandas_env source pandas_env/bin/activate # Linux/macOS pandas_env\Scripts\activate.bat # Windows ``` #### 常见问题 - **权限不足**:在命令中添加`--user`选项: ```bash pip install pandas==2.0.0 --user ``` - **Python2.7兼容性**:Pandas 2.0不支持Python2.7,需降级至Pandas 0.25.3[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值