pandas 技术专题简介-冯金伟博客园

简介

  提示:此条目的主题不是PANDAS,它是用于Pandora Archive的澳大利亚归档管理系统。 pandas原作者Wes McKinney(英语:Wes McKinney)开发者社区首次发布2008年1月11日,​15年前​(2008-01-11)当前版本1.5.3 (2023年1月18日) 源代码库github.com/pandas-dev/pandas 编程语言Python, Cython, C操作系统跨平台类型数据分析(英语:List of numerical analysis software)许可协议三条款BSD许可证网站pandas.pydata.org在计算机编程中,pandas是Python编程语言的用于数据操纵和分析的软件库。特别是,它提供操纵数值表格和时间序列的数据结构和运算操作。它是在三条款BSD许可证下发行的自由软件。它的名字派生自术语“面板数据”(panel data),这是计量经济学的数据集术语,它们包括了对同一个体的在多个时期上的观测。它的名字还可解释为短语“Python data analysis”自身的文字游戏。

库特征

数据帧(DataFrame)对象,用于凭借集成索引进行数据操纵。

在内存中数据结构和不同的文件格式之间读写数据的工具。

数据对齐和集成的缺失数据处理。

数据集的再成形(reshape)和装枢轴(pivot)。

大数据集的基于标签的分片(英语:Array slicing)、花式(fancy)索引和子集。

数据结构列的插入和删除。

由引擎(engine)分组,允许在数据集上的分离-应用-合并(split-apply-combine)运算操作。

数据集的归并和连接。

层级轴索引,以低维数据结构工作在高维数据上。

时间序列功能:数据范围生成和频率转换,移动窗口统计,移动窗口线性回归,数据转移(shift)和滞后(lag)。

提供数据过滤。

这个库对性能进行了高度优化,具有关键代码路径用Cython或C写成。

数据帧

pandas主要用于数据分析。pandas的数据帧允许操纵各种数据文件格式,比如导入导出CSV、JSON、SQL、HDF5和导入Microsoft Excel等。pandas允许各种数据操纵运算操作比如归并、再成形、选择,还有数据清洗和数据加工(英语:data wrangling)特征。

支持导入导出NetCDF格式数据的xarray,可以在自身的数据集和Pandas的数据帧之间相互转换。

历史

开发者Wes McKinney(英语:Wes McKinney)于2008年在AQR Capital Management(英语:AQR Capital)开始制作pandas来满足在财务数据上进行定量分析(英语:Quantitative analysis (finance))对高性能、灵活工具的需要。在离开AQR之前他说服管理者允许他将这个库开放源代码。

另一个AQR雇员Chang She,在2012年加入了这项努力并成为这个库的第二个主要贡献者。

在2015年,pandas签约了NumFOCUS的一个财务赞助项目,它是美国的501(c)(3)非营利慈善团体。

例子

import pandas as pdimport matplotlib.pyplot as pltimport numpy as npdf = pd.DataFrame(np.random.randn(100, 5), columns=list('ABCDE'))df=df.cumsum() # Return cumulative sum over a DataFrame or Series axisdf.plot()plt.show()

时间线

2008年:pandas 的开发开始

2009 年:pandas 开源

2012 年:第一版 Python for Data Analysis 发布

2015 年:pandas 成为 NumFOCUS 赞助的项目

2018 年:第一次面对面的核心开发者冲刺