Data used for this tutorial:
  • 本教程使用泰坦尼克号数据集,它以 CSV 格式存储。该数据包含以下数据列:

    • PassengerId:每位乘客的 ID。

    • Survived:乘客是否存活的指示。0 表示生存,1 表示死亡。

    • Pclass:3 个票务等级之一:1 等、2 等和 3 等。

    • Name:乘客姓名。

    • Sex:乘客性别。

    • Age:乘客年龄(以年为单位)。

    • SibSp:船上兄弟姐妹或配偶的数量。

    • Parch:船上父母或子女的数量。

    • Ticket:乘客的票号。

    • Fare:指示票价。

    • Cabin:乘客的客舱号。

    • Embarked:登船港口。

    To raw data

如何读写表格式数据?#

../../_images/02_io_readwrite.svg
  • 我想分析泰坦尼克号乘客数据,这些数据以 CSV 文件形式提供。

    pandas 提供了 read_csv() 函数,用于将 CSV 文件中存储的数据读入 pandas DataFrame。pandas 开箱即用地支持许多不同的文件格式或数据源(csv、excel、sql、json、parquet 等),每个都有 read_* 前缀。

读取数据后,请务必始终检查数据。显示 DataFrame 时,默认会显示前 5 行和后 5 行:

  • 我想查看 pandas DataFrame 的前 8 行。

    要查看 DataFrame 的前 N 行,请使用 head() 方法,并将所需行数(本例中为 8)作为参数。

备注

对最后 N 行感兴趣?pandas 还提供了 tail() 方法。例如,titanic.tail(10) 将返回 DataFrame 的最后 10 行。

可以检查 pandas 如何解释每种列数据类型的,方法是请求 pandas 的 dtypes 属性:

列出了每种列使用的。此 DataFrame 中的数据类型包括整数(int64)、浮点数(float64)和字符串(object)。

备注

在请求 dtypes 时,不使用括号!dtypesDataFrameSeries 的一个属性。DataFrameSeries 的属性不需要括号。属性代表 DataFrame/Series 的一个特征,而方法(需要括号)则对 DataFrame/Series 执行 操作,如 first tutorial 中所述。

  • 我的同事请求了泰坦尼克号数据作为电子表格。

    虽然 read_* 函数用于将数据读入 pandas,但 to_* 方法用于存储数据。to_excel() 方法将数据存储为 excel 文件。在此示例中,sheet_name 被命名为 passengers 而不是默认的 Sheet1。通过设置 index=False,行索引标签不会保存在电子表格中。

等效的读取函数 read_excel() 将把数据重新加载到 DataFrame 中:

  • 我对 DataFrame 的技术摘要感兴趣

    info() 方法提供了关于 DataFrame 的技术信息,所以让我们更详细地解释一下输出:

    • 它确实是一个 DataFrame

    • 有 891 个条目,即 891 行。

    • 每行都有一个行标签(也称为 index),值为 0 到 890。

    • 该表有 12 列。大多数列对于每一行都有一个值(所有 891 个值都是 non-null)。一些列确实有缺失值,并且 non-null 的值少于 891 个。

    • NameSexCabinEmbarked 列包含文本数据(字符串,也称为 object)。其他列是数字数据,其中一些是整数(也称为 integer),另一些是实数(也称为 float)。

    • 不同列中的数据类型(字符、整数等)通过列出 dtypes 进行汇总。

    • 还提供了用于保存 DataFrame 所需的 RAM 的近似量。

REMEMBER

  • read_* 函数支持将数据获取到 pandas 中,这些数据可以来自许多不同的文件格式或数据源。

  • 不同的 to_* 方法提供将数据导出到 pandas 之外的功能。

  • head/tail/info 方法和 dtypes 属性对于初次检查很方便。

To user guide

有关输入输出可能性的完整概述,请参阅用户指南中关于 reader and writer functions 的部分。