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.

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

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

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

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

a 中的每一列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

pandasSeries没有列标签,因为它只是DataFrame.系列确实有行标签。

使用 DataFrame 或 Series 做一些事情#

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

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

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

    或者到Series

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

正如该方法所示max(),您可以使用 a 或执行操作。 pandas 提供了很多功能,每个功能都可以应用于 a或。由于方法是函数,因此不要忘记使用括号。DataFrameSeriesDataFrameSeries()

  • 我对数据表的数值数据的一些基本统计感兴趣

    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 操作都会返回 aDataFrame或 a Series。该 方法是返回 pandas或 pandas 的describe()pandas 操作的示例。SeriesDataFrame

转至用户指南

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

笔记

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

记住

  • 导入包,又名import pandas as pd

  • 数据表存储为 pandasDataFrame

  • a 中的每一列DataFrame都是Series

  • 您可以通过将方法应用于 aDataFrameSeries

转至用户指南

数据结构简介中提供了对DataFrame和 的更扩展的解释。Series