服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

Pandas 2.0 版本要来了

日期: 来源:Python开发者收集编辑:

↓推荐关注↓

来源:数据STUDIO

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

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

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

更快和更有效的内存操作

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


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

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

什么是Pyarrow?

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

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

缺失值处理

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

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

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

写入时复制优化

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

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

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

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


索引

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

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

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

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


Pandas 2.0将更快

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

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

参考资料

[1]

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

[2]

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

- EOF -


加主页君微信,不仅Python技能+1

主页君日常还会在个人微信分享Python相关工具资源精选技术文章,不定期分享一些有意思的活动岗位内推以及如何用技术做业余项目

加个微信,打开一扇窗



推荐阅读  点击标题可跳转

1、ChatGPT 官方 API,终于来了!

2、分享 10 个 Pandas 的小技巧!

3、超强图解 Pandas,建议收藏


觉得本文对你有帮助?请分享给更多人

推荐关注「Python开发者」,提升Python技能

点赞和在看就是最大的支持❤️

相关阅读

  • @Bean 与 @Component 用在同一个类上,会怎么样?

  • 关注我,回复关键字“spring”,免费领取Spring学习资料。来源:cnblogs.com/youzhibing/p/15354706.html疑虑背景疑虑描述最近,在进行开发的过程中,发现之前的一个写法,类似如下图片
  • Spring Boot 项目如何按模块进行拆分?

  • 关注我,回复关键字“spring”,免费领取Spring学习资料。在了解SpringBoot项目拆分之前首先我们需要了解微服务架构什么是微服务?单个轻量级服务一般为一个单独微服务,微服务讲究
  • 一款高颜值的MySQL管理工具:Sequel Pro

  • Sequel Pro 是一个 Mac 系统上简单易用的 MySQL 和 MariaDB 数据库管理系统。服务器和本地都是Mysql数据库使用的工具:Sequel Pro(专门管理Mysql的工具)操作系统Mac OS 10.12
  • Android渗透测试HTTPS证书校验绕过

  • 日常Android渗透过程中,会经常遇见https证书校验(http就不存在证书校验了,直接抓包便可),不能抓取数据包。APP是HTTPS的服务提供方自己开发的客户端,开发者可以先将自己服务器的证
  • 没有退休金的父母,计划卖房养老

  • 本文系读者来稿,来稿请投至:zhuangao2@lifeweek.com.cn文|读者:小米粥近日,微信家人群里收到父母要卖房子的消息。其实父母也并不是急于要出售房子,他们更多的是在征求我们子女的
  • 武大代表委员在两会!

  • 全国政协十四届一次会议和十四届全国人大一次会议分别于2023年3月4日、5日在京召开。来自武汉大学的两会代表委员们履行庄严使命,发挥专业优势,把握时代脉搏,反映师生心声,围绕
  • 迟日大委员建议:加快编纂环境法典进程

  • 在今年的全国两会上,“生态”一词15次出现在政府工作报告中,充分体现了党中央、国务院对生态文明建设的高度重视。那么,如何用最严格制度最严密法治保护生态环境呢?近日,全国政协

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • SecWiki周刊(第471期)

  • 本期关键字:DNS流量 、社区反作弊、第三方库评估、前出狩猎、异构溯源图、韧性网络安全、安全知识图谱、后渗透、未知网络威胁检测、流量镜像、态势综述、镜像扫描、RSA常见
  • Pandas 2.0 版本要来了

  • ↓推荐关注↓来源:数据STUDIOPandas[1]是一个用于处理数据的Python库,在Python开发者中非常流行。相信你已经对他非常熟悉了。随着现在数据量越来越多,pandas的局限性也日渐凸
  • @Bean 与 @Component 用在同一个类上,会怎么样?

  • 关注我,回复关键字“spring”,免费领取Spring学习资料。来源:cnblogs.com/youzhibing/p/15354706.html疑虑背景疑虑描述最近,在进行开发的过程中,发现之前的一个写法,类似如下图片
  • Spring Boot 项目如何按模块进行拆分?

  • 关注我,回复关键字“spring”,免费领取Spring学习资料。在了解SpringBoot项目拆分之前首先我们需要了解微服务架构什么是微服务?单个轻量级服务一般为一个单独微服务,微服务讲究
  • 某OA系统SYSTEM权限SQL注入

  • 声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试
  • 每周安全动态精选(3.6-3.10)

  • 本周精选Microsoft Word远程代码执行漏洞Mustang Panda 的最新后门利用 Qt 和 MQTT 开辟了新天地宏碁数据泄露:黑客声称出售 160GB 的被盗数据微软发现 Shein App 在 Android