pandas 处理什么类型的数据?#

  • 我想开始使用 pandas

    In [1]: import pandas as pd
    

    要加载 pandas 包并开始使用它,请导入该包。社区约定俗成的 pandas 别名为 pd,因此将 pandas 加载为 pd 被认为是 pandas 文档中所有内容的标准做法。

pandas 数据表表示#

../../_images/01_table_dataframe.svg
  • 我想存储泰坦尼克号的乘客数据。对于一些乘客,我知道他们的姓名(字符)、年龄(整数)和性别(男性/女性)数据。

    In [2]: df = pd.DataFrame(
       ...:     {
       ...:         "Name": [
       ...:             "Braund, Mr. Owen Harris",
       ...:             "Allen, Mr. William Henry",
       ...:             "Bonnell, Miss Elizabeth",
       ...:         ],
       ...:         "Age": [22, 35, 58],
       ...:         "Sex": ["male", "male", "female"],
       ...:     }
       ...: )
       ...: 
    
    In [3]: df
    Out[3]: 
                           Name  Age     Sex
    0   Braund, Mr. Owen Harris   22    male
    1  Allen, Mr. William Henry   35    male
    2   Bonnell, Miss Elizabeth   58  female
    

    要手动将数据存储在表中,请创建一个 DataFrame。当使用列表的 Python 字典时,字典的键将用作列标题,每个列表中的值将用作 DataFrame 的列。

一个 DataFrame 是一个二维数据结构,它可以在列中存储不同类型的数据(包括字符、整数、浮点数值、分类数据等)。它类似于电子表格、SQL 表或 R 中的 data.frame

  • 该表有 3 列,每列都有一个列标签。列标签分别是 NameAgeSex

  • Name 由文本数据组成,每个值都是一个字符串,列 Age 是数字,列 Sex 是文本数据。

  • 索引标签表示每一行。默认情况下,这是一个从 0 开始的整数序列。

在电子表格软件中,我们数据的表格表示形式会非常相似

../../_images/01_table_spreadsheet.png

DataFrame 中的每一列都是一个 Series#

../../_images/01_table_series.svg
  • 我只对处理 `Age` 列中的数据感兴趣

    In [4]: df["Age"]
    Out[4]: 
    0    22
    1    35
    2    58
    Name: Age, dtype: int64
    

    当从 pandas DataFrame 中选择单列时,结果是一个 pandas Series。要选择该列,请在方括号 [] 中使用列标签。

注意

如果您熟悉 Python 字典,则选择单列与基于键选择字典值非常相似。

您也可以从头开始创建一个 Series

In [5]: ages = pd.Series([22, 35, 58], name="Age")

In [6]: ages
Out[6]: 
0    22
1    35
2    58
Name: Age, dtype: int64

pandas Series 没有列标签,因为它只是 DataFrame 的单列。Series 有行标签。

对 DataFrame 或 Series 执行操作#

  • 我想知道乘客的最大年龄

    我们可以通过选择 Age 列并应用 max() 来在 DataFrame 上执行此操作。

    In [7]: df["Age"].max()
    Out[7]: 58
    

    或者对 Series 执行此操作

    In [8]: ages.max()
    Out[8]: 58
    

正如 max() 方法所示,您可以对 DataFrameSeries 执行操作。pandas 提供了许多功能,其中每一个都是您可以应用于 DataFrameSeries方法。由于方法是函数,请不要忘记使用括号 ()

  • 我对我的数据表中的数值数据的基本统计信息感兴趣。

    In [9]: df.describe()
    Out[9]: 
                 Age
    count   3.000000
    mean   38.333333
    std    18.230012
    min    22.000000
    25%    28.500000
    50%    35.000000
    75%    46.500000
    max    58.000000
    

    `describe()` 方法提供了对 DataFrame 中数值数据的快速概述。由于 NameSex 列是文本数据,因此默认情况下 describe() 方法不会考虑它们。

许多 pandas 操作会返回 DataFrameSeries。 `describe()` 方法是返回 pandas Series 或 pandas DataFrame 的 pandas 操作的一个示例。

用户指南

在用户指南关于 使用 describe 进行聚合 的部分中,可以找到关于 `describe` 的更多选项。

注意

这只是一个起点。与电子表格软件类似,pandas 将数据表示为具有列和行的表格。除了表示之外,pandas 还支持您在电子表格软件中进行的相同数据操作和计算。继续阅读接下来的教程以开始!

请记住

  • 导入包,即 `import pandas as pd`

  • 数据表存储为 pandas DataFrame

  • DataFrame 中的每一列都是一个 Series

  • 您可以通过在 DataFrameSeries 上应用方法来执行操作。

用户指南

数据结构介绍 页面中提供了对 DataFrameSeries 的更详细解释。