pandas是基于numpy的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas納入了大量庫和一些標(biāo)準的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。你很快就會發(fā)現(xiàn),它是使Python成為強大而高效的數(shù)據(jù)分析環(huán)境的重要因素之一。
簡介
Pandas是python的一個數(shù)據(jù)分析包,最初由AQR Capital Management于2008年4月開發(fā),并于2009年底開源出來,目前由專注于Python數(shù)據(jù)包開發(fā)的PyData開發(fā)team繼續(xù)開發(fā)和維護,屬于PyData項目的一部分。Pandas最初被作為金融數(shù)據(jù)分析工具而開發(fā)出來,因此,pandas為時間序列分析提供了很好的支持。Pandas的名稱來自于面板數(shù)據(jù)(panel 數(shù)據(jù))和python數(shù)據(jù)分析(data analysis)。panel data是經(jīng)濟學(xué)中關(guān)于多維數(shù)據(jù)集的一個術(shù)語,在Pandas中也提供了panel的數(shù)據(jù)類型。
數(shù)據(jù)結(jié)構(gòu)
Series:一維數(shù)組,與numpy中的一維array類似。二者與Python基本的數(shù)據(jù)結(jié)構(gòu)List也很相近。Series如今能保存不同種數(shù)據(jù)類型,字符串、boolean值、數(shù)字等都能保存在Series中。
DataFrame:二維的表格型數(shù)據(jù)結(jié)構(gòu)。很多功能與R中的數(shù)據(jù)frame類似。可以將DataFrame理解為Series的容器。
Panel:三維的數(shù)組,可以理解為DataFrame的容器。
Panel4D:是像Panel一樣的4維數(shù)據(jù)容器。
PanelND:擁有工廠集合,可以創(chuàng)建像Panel4D一樣N維命名容器的模塊。
發(fā)展歷史
Pandas的開發(fā)始于2008年,由Wes McKinney在AQR資本管理公司開始,為了滿足金融數(shù)據(jù)分析的需求。
2009年,Wes McKinney離開AQR之前,說服管理層將pandas開源。
2012年,Chang She加入項目,成為第二個主要貢獻者。
2015年,pandas成為NumFOCUS的財務(wù)贊助項目。
2018年,舉行了第一次面對面的“核心開發(fā)者沖刺”。
2022年,第三版《Python for Data Analysis》公開版在線發(fā)行。
功能和服務(wù)
主要功能
pandas提供了快速而高效的DataFrame對象,用于憑借其集成的索引進行數(shù)據(jù)操縱。它的主要特征包括易于將不同索引的數(shù)據(jù)轉(zhuǎn)換成DataFrame對象,大小可變性,自動和顯式的數(shù)據(jù)對齊,處理缺失數(shù)據(jù)的能力,基于標(biāo)簽的分片,多重索引,數(shù)據(jù)集的歸并和連接,分組功能,數(shù)據(jù)集的重制形狀和樞軸匯總,層級標(biāo)簽的軸,強大的I/O工具,以及特定于時間序列的功能。pandas經(jīng)過了高度的性能優(yōu)化,關(guān)鍵代碼路徑用Cython或c語言寫成。pandas可以利用PyArrow來擴展功能并增進各種API的性能。pandas的缺省繪圖后端是Matplotlib,還可以擴展上其他第三方繪圖后端。進程內(nèi)SQL OLAP列式數(shù)據(jù)庫DuckDB,可以在pandas數(shù)據(jù)幀上執(zhí)行SQL。
示例
pandas提供了豐富的示例來展示其功能,包括基本的數(shù)據(jù)幀操作、數(shù)據(jù)幀與序列之間的運算、數(shù)據(jù)幀的查詢、數(shù)據(jù)幀的重制形狀、數(shù)據(jù)幀的串接和歸并、數(shù)據(jù)幀的分組和聚合、數(shù)據(jù)幀的樞軸匯總,以及使用matplotlib繪制條形圖。此外,pandas還提供了強大的數(shù)據(jù)導(dǎo)入和導(dǎo)出功能,支持多種文件格式,如CSV、JSON、HDF5、netCDF等。
I/O工具
pandas擁有健壯的I/O工具,可以從CSV、JSON、Parquet、SQL表和查詢、Excel文件裝載數(shù)據(jù),并以極快的HDF5格式保存/裝載數(shù)據(jù)。它還支持使用util-linux工具組成員column來查看CSV文件,使用jq編程語言實現(xiàn)jq來查看JSON文件,以及使用hdf5-tools工具組成員h5ls來查看HDF5文件。導(dǎo)出和導(dǎo)入netCDF文件可以借助xarray,它依賴于pandas,并通過netcdf4-Python支持導(dǎo)入導(dǎo)出netCDF-4格式數(shù)據(jù),通過SciPy支持其他版本netCDF格式。
參考資料 >
difference between pandas series and dataframe.稀土掘金.2024-03-19
AI 和數(shù)據(jù)科學(xué).引領(lǐng)人工智能計算.2024-03-19
Pandas是什么.C語言中文網(wǎng).2024-03-19