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 是文本数据。

在电子表格软件中,我们数据的表格表示看起来非常相似

../../_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 做一些操作#

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

    我们可以在 DataFrame 上执行此操作,方法是选择 Age 列并应用 max()

    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 操作返回 DataFrameSeriesdescribe() 方法是返回 pandas Series 或 pandas DataFrame 的 pandas 操作的示例。

到用户指南

在用户指南中关于 使用 describe 进行聚合 的部分查看有关 describe 的更多选项

注意

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

记住

  • 导入包,也称为 import pandas as pd

  • 数据表存储为 pandas DataFrame

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

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

到用户指南

有关 DataFrameSeries 的更详细说明,请参阅 数据结构简介