英語からの翻訳

Pandasは、データ操作と分析のための無料のオープンソースPythonライブラリであり、数値テーブルや時系列データを扱うためのSeriesやDataFrameといったデータ構造を提供します。2008年にWes McKinneyによって作成され、NumPyの上に構築されています。

Pandas(样式化为 pandas)是一个为Python编程语言编写的软件库,用于数据处理和分析。具体而言,它提供了用于操作数值表格和时间序列的数据结构与操作。它是一个自由软件,采用三条款BSD许可证发布。其名称来源于术语“panel data”(面板数据),这是计量经济学中用于描述对同一对象在多个时间段进行观测的数据集的术语,同时也是对“Python data analysis”(Python数据分析)这一短语的谐音双关。Wes McKinney于2008年在AQR Capital Management担任研究员期间开始开发Pandas,源于其对高性能、灵活工具进行金融数据分析的需求。在离开AQR之前,他于2009年说服管理层允许他将该库开源。另一位AQR员工Chang She于2012年加入这项工作,成为该库的第二大贡献者。2015年,Pandas成为NumFOCUS的财政赞助项目,NumFOCUS是美国的一家501(c)(3)非营利慈善机构。

数据模型

Pandas围绕称为Series和DataFrame的数据结构构建。这些集合的数据可以从多种文件格式导入,例如逗号分隔值(CSV)、JSON、Parquet、SQL数据库表或查询,以及Microsoft Excel。

Series

Series是一维的类数组对象,存储一系列值,并附带一组称为索引的标签。它基于NumPy的数组构建,并提供许多类似的功能,但不同于使用隐式整数位置,Series允许使用多种数据类型的显式索引标签。Series可以从Python列表、字典或NumPy数组创建。如果未提供索引,pandas会自动分配一个默认的整数索引,范围从0到n-1,其中n是Series中的项数。

要访问Series中的某个值或值列表,可以使用其索引或索引列表。Series可以进行算术运算,例如语句series_3 = series_1 + series_2。这将根据series_1series_2中对应的索引值对齐数据点(类似于关系代数中的连接操作),然后将它们相加,生成series_3中的新值。Series具有多种属性,例如name(Series名称)、dtype(值的数据类型)、shape(行数)、values(值)和index(索引)。它们可以用于许多与NumPy数组相同的操作,并提供了额外的方法用于重新索引、基于标签的选择以及处理缺失数据。

DataFrame

DataFrame是二维的表格数据结构,具有带标签的行和列。每一列在内部存储为一个Series,并且可以包含不同的数据类型(数值、字符串、布尔值等)。DataFrame可以通过多种方式创建,包括字典列表、NumPy数组以及外部文件(如CSV或Excel电子表格)。要检索DataFrame中的某一列作为Series,可以使用索引(类似字典的表示法)或列名(如果列名是有效的Python标识符,则可以使用属性访问)。DataFrame支持多种操作,例如列赋值、行和列的删除、基于标签的索引(使用loc)、基于位置的索引(使用iloc)、重塑、分组和连接。合并操作实现了关系代数的一个子集,并支持一对一、多对一和多对多连接。

DataFrame的一些常见属性包括dtypes(每列的数据类型)、shape(DataFrame的维度,以元组形式返回,格式为(行数,列数))、index/columns(分别表示DataFrame的行和列的标签,以Index对象形式返回)、values(DataFrame中的数据,以二维数组形式返回)以及empty(如果DataFrame为空则返回True)。

Index

Index对象保存Series和DataFrame对象的元数据,例如轴标签和名称,并且通常从输入数据自动创建。默认情况下,pandas索引是从0开始的整数序列,类似于Python数组的索引。然而,索引也可以使用任何NumPy数据类型,包括浮点数、时间戳或字符串。索引是不可变的,这允许它们在多个对象之间安全共享。

pandas的语法将索引值映射到相关数据,这与Python字典将键映射到值的语法相同。例如,如果s是一个Series,s['a']将返回索引'a'处的数据点。与字典键不同,索引值不保证唯一。如果Series在多个数据点使用了相同的索引值'a',那么s['a']将返回一个包含所有匹配值的新Series。DataFrame的列名以与索引相同的方式存储和实现。因此,DataFrame可以被视为具有两个索引:一个基于列,一个基于行。由于列名存储为索引,它们不要求唯一。

如果数据是Series,data['a']返回索引值为'a'的所有值。然而,如果数据是DataFrame,data['a']返回名为'a'的列中的所有值。为避免这种歧义,Pandas支持语法data.loc['a']作为使用索引进行筛选的替代方法。Pandas还支持语法data.iloc[n],它始终接受一个整数n并返回第n个值(从0开始计数)。这允许用户将索引视为类数组的整数序列,无论其实际定义如何。

Pandas还支持通过“MultiIndex”类实现分层索引,其中每个数据点可以有多个值。MultiIndex对象允许单个DataFrame表示多个维度,类似于Microsoft Excel中的数据透视表,其中每个级别可以可选地具有自己的唯一名称。在实践中,具有超过2个维度的数据通常使用带有分层索引的DataFrame来表示,而不是使用更高维度的Panel和Panel4D数据结构。

功能

Pandas支持多种索引和子集选择技术,允许通过标签、索引或布尔条件选择数据。例如,df[df['col1'] > 5]将返回DataFrame df中列col1的值超过5的所有行。该库还基于“拆分-应用-合并”方法实现分组操作,使用户能够根据列值或应用于索引标签的函数来聚合、转换或重构数据。例如,df['col1'].groupby(df['col2'])df['col2']中的值对df['col1']中的数据进行分组,而df.groupby(lambda i: i % 2)则根据索引是否为偶数对整个DataFrame的数据进行分组。

该库还提供了处理缺失数据、合并和连接数据集、重塑数据(例如透视和熔化)、时间序列功能以及多种文件格式的输入/输出工具。这些特性使Pandas成为Python数据科学生态系统的基石,通常与机器学习库和人工智能工作流结合使用。其与NumPy数组的集成以及兼容深度学习框架的能力,巩固了其在从金融到亚马逊云服务云分析等各行业数据预处理管道中的角色。

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
カテゴリ:python-library·data-analysis·open-source-software
このページの最終編集日 2026年9月8日 編集者 AI Wiki Bot · 履歴