Pandas中的幾個(gè)加速方法,你了解多少?
Pandas 數(shù)據(jù)統(tǒng)計(jì)包的 6 種高效函數(shù)
Pandas 也是一個(gè) Python 包,它提供了快速、靈活以及具有顯著表達(dá)能力的數(shù)據(jù)結(jié)構(gòu), 旨在使處理結(jié)構(gòu)化 (表格化、多維、異構(gòu)) 和時(shí)間序列數(shù)據(jù)變得既簡單又直觀。
PANDAS
Pandas 適用于以下各類數(shù)據(jù):
●具有異構(gòu)類型列的表格數(shù)據(jù),如 SQL 表或 Excel 表
●有序和無序 (不一定是固定頻率) 的時(shí)間序列數(shù)據(jù)
●帶有行/列標(biāo)簽的任意矩陣數(shù)據(jù)(同構(gòu)類型或者是異構(gòu)類型)
●其他任意形式的統(tǒng)計(jì)數(shù)據(jù)集。事實(shí)上,數(shù)據(jù)根本不需要標(biāo)記就可以放入 Pandas 結(jié)構(gòu)中
Pandas 擅長處理的類型如下所示:
●容易處理浮點(diǎn)數(shù)據(jù)和非浮點(diǎn)數(shù)據(jù)中的 缺失數(shù)據(jù)(用 NaN 表示)
●大小可調(diào)整性: 可以從 DataFrame 或者更高維度的對(duì)象中插入或者是刪除列
●顯式數(shù)據(jù)可自動(dòng)對(duì)齊: 對(duì)象可以顯式地對(duì)齊至一組標(biāo)簽內(nèi),或者用戶可以簡單地選擇忽略標(biāo)簽,使 Series、 DataFrame 等自動(dòng)對(duì)齊數(shù)據(jù)
●靈活的分組功能,對(duì)數(shù)據(jù)集執(zhí)行拆分-應(yīng)用-合并等操作,對(duì)數(shù)據(jù)進(jìn)行聚合和轉(zhuǎn)換
●簡化將數(shù)據(jù)轉(zhuǎn)換為 DataFrame 對(duì)象的過程,而這些數(shù)據(jù)基本是 Python 和 NumPy 數(shù)據(jù)結(jié)構(gòu)中不規(guī)則、不同索引的數(shù)據(jù)
●基于標(biāo)簽的智能切片、索引以及面向大型數(shù)據(jù)集的子設(shè)定
●更加直觀地合并以及連接數(shù)據(jù)集
●更加靈活地重塑、轉(zhuǎn)置(pivot)數(shù)據(jù)集
●軸的分級(jí)標(biāo)記 (可能包含多個(gè)標(biāo)記)
●具有魯棒性的 IO 工具,用于從平面文件 (CSV 和 delimited)、 Excel 文件、數(shù)據(jù)庫中加在數(shù)據(jù),以及從 HDF5 格式中保存 / 加載數(shù)據(jù)
●時(shí)間序列的特定功能: 數(shù)據(jù)范圍的生成以及頻率轉(zhuǎn)換、移動(dòng)窗口統(tǒng)計(jì)、數(shù)據(jù)移動(dòng)和滯后等
read_csv(nrows=n)
大多數(shù)人都會(huì)犯的一個(gè)錯(cuò)誤是,在不需要.csv 文件的情況下仍會(huì)完整地讀取它。如果一個(gè)未知的.csv 文件有 10GB,那么讀取整個(gè).csv 文件將會(huì)非常不明智,不僅要占用大量內(nèi)存,還會(huì)花很多時(shí)間。我們需要做的只是從.csv 文件中導(dǎo)入幾行,之后根據(jù)需要繼續(xù)導(dǎo)入。
map()
map() 函數(shù)根據(jù)相應(yīng)的輸入來映射 Series 的值。用于將一個(gè) Series 中的每個(gè)值替換為另一個(gè)值,該值可能來自一個(gè)函數(shù)、也可能來自于一個(gè) dict 或 Series。
apply()
apply() 允許用戶傳遞函數(shù),并將其應(yīng)用于 Pandas 序列中的每個(gè)值。
isin()
lsin () 用于過濾數(shù)據(jù)幀。Isin () 有助于選擇特定列中具有特定(或多個(gè))值的行。
copy()
Copy () 函數(shù)用于復(fù)制 Pandas 對(duì)象。當(dāng)一個(gè)數(shù)據(jù)幀分配給另一個(gè)數(shù)據(jù)幀時(shí),如果對(duì)其中一個(gè)數(shù)據(jù)幀進(jìn)行更改,另一個(gè)數(shù)據(jù)幀的值也將發(fā)生更改。為了防止這類問題,可以使用 copy () 函數(shù)。
select_dtypes()
select_dtypes() 的作用是,基于 dtypes 的列返回?cái)?shù)據(jù)幀列的一個(gè)子集。這個(gè)函數(shù)的參數(shù)可設(shè)置為包含所有擁有特定數(shù)據(jù)類型的列,亦或者設(shè)置為排除具有特定數(shù)據(jù)類型的列。
最后,pivot_table() 也是 Pandas 中一個(gè)非常有用的函數(shù)。如果對(duì) pivot_table() 在 excel 中的使用有所了解,那么就非常容易上手了。