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 的单个列时,结果是一个 pandas DataFrame。结果是一个 pandas Series。要选择该列,请使用方括号 [] 之间的列标签。

注意

如果你熟悉 Python dictionaries,则选择单个列的方式与根据键选择字典值的方式非常相似。

你也可以从头开始创建一个 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 执行操作#

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

    我们可以通过选择 DataFrameAge 列并应用 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 操作返回一个 DataFrame 或一个 Seriesdescribe() 方法就是一个 pandas 操作的示例,该操作返回一个 pandas Series 或一个 pandas DataFrame

前往用户指南

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

注意

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

记住

  • 导入包,即 import pandas as pd

  • 数据表被存储为一个 pandas DataFrame

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

  • 通过对 DataFrameSeries 应用方法可以进行操作。

前往用户指南

关于 DataFrameSeries 的更详细解释在 数据结构介绍 中提供。