進步神速,Pandas 2.1來了!
本文將介紹Pandas 2.1中的新功能,探討關於這個新版本中最有趣的事情。
前言
Pandas 2.1於2023年8月30日釋出。跟隨本文一起看看這個版本引入了哪些新內容,以及它如何幫助使用者改進Pandas的工作負載。它包含了一系列改進和一組新的棄用功能。
Pandas 2.1在Pandas 2.0中引入的PyArrow整合基礎上進行了大量改進。本文主要關注了對新功能的支援,這些新功能有望在Pandas 3.0中成為預設功能。接下來將深入瞭解這對使用者意味著什麼,本文將詳細介紹最重要的改進。
避免在字串列中使用NumPy物件型別
pandas
中的一個主要問題是低效的字串表示。Pandas團隊花了相當長的時間研究了這個問題。第一個基於PyArrow的字串
dtype
在
pandas 1.3
中可用。它有潛力將記憶體使用量減少約70%並提高效能。
Pandas團隊決定引入一個新的配置選項,將所有字串列儲存在PyArrow陣列中。不再需要擔心轉換字串列,它會自動工作。
可以透過以下方式開啟此選項:
pd.options.future.infer_string =
True
這個行為將在
pandas 3.0
中成為預設行為,這意味著字串列將始終由PyArrow支援。必須安裝PyArrow才能使用此選項。
PyArrow與NumPy物件
dtype
有不同的行為,可能會讓人難以詳細理解。Pandas團隊實現了用於此選項的字串
dtype
,以與NumPy的語義相容。它的行為與NumPy物件列完全相同。
改進的PyArrow支援
Pandas團隊在
pandas 2.0
中引入了基於PyArrow的DataFrame。Pandas團隊過去幾個月的主要目標之一是改進
pandas
內部的整合。他們的目標是儘可能簡化從基於NumPy的DataFrame切換的過程。他們著重解決了修復效能瓶頸的問題,因為這些問題曾經導致意料之外的減速。
接下來檢視一個示例:
import pandas
as pd
import numpy
as np
df = pd.DataFrame(
{
"foo": np.random.randint(
1,
10, (
1_000_000, )),
"bar": np.random.randint(
1,
100, (
1_000_000,)),
}, dtype=
"int64[pyarrow]"
)
grouped = df.groupby(
"foo")
本文的DataFrame有100萬行和10個組。現在來比較一下
pandas 2.0.3
和
pandas 2.1
的效能:
# pandas 2.0.3
10.6 ms ±
72.7 µs per loop (mean ± std. dev. of
7 runs,
100 loops each)
# pandas 2.1.0
1.91 ms ±
3.16 µs per loop (mean ± std. dev. of
7 runs,
1,
000 loops each)
這個特定的例子在新版本上快了5倍。
merge
是另一個常用的函式,現在速度會更快。Pandas團隊希望現在使用基於PyArrow支援的DataFrames的體驗會更好。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70033967/viewspace-2984548/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 吳尊想讓孩子來中國讀書 稱孩子們中文進步神速
- OAuth 2.1 帶來了哪些變化OAuth
- 演算法金 | 來了,pandas 2.0演算法
- 我太想進步了
- 今天你進步了嗎?
- Pandas進階貳 pandas基礎
- 使用Pandas進行資料清理過程的簡單步驟 - sahilfruitwalaUI
- OAuth 2.1 的進化之路OAuth
- pandas 按照列進行求和
- 被 Pandas read_csv 坑了
- 使用pandas進行資料分析
- npm怎麼配置下包最神速?NPM
- AI演算法的進步超越了摩爾定律!AI演算法
- 機器翻譯進化到哪一步了?
- 用 Python 進行資料分析 pandas (一)Python
- Linkerd 2.0迎來更新,向著Kubernetes再進一步
- 來了來了,國服Steam真的來了
- 2.1 !
- 雙拼輸入法,助你神速輸出中文
- 一步一步來
- 它來了 它來了。Laravel Reverb 到來了Laravel
- 時代在進步,我們也要跟著進步
- 乾貨來了!快速教你資料清洗的步驟及方法
- 別找了,這是 Pandas 最詳細教程了
- 無限進步
- Python 資料處理庫 pandas 進階教程Python
- 來了,來了,你們要的Nginx教程來了Nginx
- 來了來了,CSS 版的冰墩墩來了……CSS
- TF2.1進階-tf.booleanmask_where_scatter_nd_mashgridTF2Boolean
- Pandas使用DataFrame進行資料分析比賽進階之路(一)
- SpringAI 她來了,真的來了SpringAI
- TDengine 如何進行 SQL 寫入?官方最全教程來了SQL
- TA來了!TA來了!TA帶著獎勵走來了!
- 來了來了!《幻境公主》7月9日公測來了!
- 【每日進步】September 2012
- Pandas之:Pandas簡潔教程
- 一文帶你掌握常見的 Pandas 效能優化方法,讓你的 pandas 飛起來!優化
- OAuth 2.1 框架OAuth框架