如何在 Python 中打印整个 Pandas DataFrame?

2025 年 1 月 5 日 | 阅读 9 分钟

使用图表、图形、地图等视觉信号从数据中传递见解被称为数据可视化。这很有帮助,因为它使我们能够更直观、更有效地解释大量数据,从而做出更好的决策。当使用较大的打印数字时,数据集将被截断。在本教程中,我们将学习如何打印整个 Pandas DataFrame 或 Series 而不被截断。

使用 Python 的 print() 方法打印整个 Pandas DataFrame

当长度超过默认长度时,默认情况下输出会被截断,如下所示,而不是显示整个数据帧。

程序说明

本 Python 程序使用 NumPy、pandas 和 scikit-learn 模块加载 Iris 数据集。该数据集包含三种鸢尾花(iris)的萼片长度、萼片宽度、花瓣长度和花瓣宽度测量值,使用 scikit-learn 的 load_iris 函数加载。之后,数据被转换为一个名为“df”的 pandas DataFrame,其列名与数据集的特征名称相匹配。DataFrame 使用 display 函数显示,该函数提供 Iris 数据集的表格表示,行表示不同的样本,列表示各种属性。此应用程序为利用 panda 的 Python 库的特性来探索和分析 Iris 数据集提供了一个基础框架。

输出

     sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
0                  5.1               3.5                1.4               0.2
1                  4.9               3.0                1.4               0.2
2                  4.7               3.2                1.3               0.2
3                  4.6               3.1                1.5               0.2
4                  5.0               3.6                1.4               0.2
..                 ...               ...                ...               ...
145                6.7               3.0                5.2               2.3
146                6.3               2.5                5.0               1.9
147                6.5               3.0                5.2               2.0
148                6.2               3.4                5.4               2.3
149                5.9               3.0                5.1               1.8

[150 rows x 4 columns]

打印整个 Pandas DataFrame 的其他方法

可以使用四种方法之一来打印完整的 Pandas DataFrame:

  • 使用 to_string() 方法
  • 使用 pd.option_context() 方法
  • 使用 pd.set_options() 方法
  • 使用 pd.to_markdown() 方法

方法 1:使用 to_string()

这种方法是最简单的,但由于它将整个数据帧转换为字符串对象,因此不建议用于非常大的数据集(数百万级别)。但是,对于数千个数据帧,它的效果非常好。

语法

示例:此示例使用 scikit-learn 的 load_iris 函数加载 Iris 数据集。接下来,创建一个包含数据集特征的 pandas DataFrame (df)。最后,使用 to_string() 将整个 DataFrame 转换为字符串表示并显示。

程序说明

本 Python 程序使用 NumPy、pandas 和 scikit-learn 模块加载 Iris 数据集。该数据集包含三种鸢尾花(iris)的萼片长度、萼片宽度、花瓣长度和花瓣宽度测量值,使用 scikit-learn 的 load_iris 函数加载。之后,数据被转换为一个名为“df”的 pandas DataFrame,其列名与数据集的特征名称相匹配。然后,程序使用 to_string() 方法将整个 DataFrame 格式化为字符串。此字符串表示随后使用 display 函数显示。这种表示格式提供了 Iris 数据集的简洁文本描述,安排了所有行和列以便于审阅。

输出

     sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
0                  5.1               3.5                1.4               0.2
1                  4.9               3.0                1.4               0.2
2                  4.7               3.2                1.3               0.2
3                  4.6               3.1                1.5               0.2
4                  5.0               3.6                1.4               0.2
5                  5.4               3.9                1.7               0.4
6                  4.6               3.4                1.4               0.3
7                  5.0               3.4                1.5               0.2
8                  4.4               2.9                1.4               0.2
9                  4.9               3.1                1.5               0.1
10                 5.4               3.7                1.5               0.2
..                ...               ...                ...               ...
140                6.7               3.1                5.6               2.4
141                6.9               3.1                5.1               2.3
142                5.8               2.7                5.1               1.9
143                6.8               3.2                5.9               2.3
144                6.7               3.3                5.7               2.5
145                6.7               3.0                5.2               2.3
146                6.3               2.5                5.0               1.9
147                6.5               3.0                5.2               2.0
148                6.2               3.4                5.4               2.3
149                5.9               3.0                5.1               1.8

方法 2:使用 pd.option_context()

Pandas 的 option_context() 和 set_option() 函数允许您修改设置。这两种方法之间唯一的区别是,后者永久修改设置,而前者仅在上下文管理器范围内修改设置。

语法

示例:此示例使用 scikit-learn 的 Iris 数据集。创建一个具有所需格式选项的 Panda Frame (pdf),并在一个临时上下文中打印数据帧,在此上下文中,显示参数(如最大行数、列数和精度)仅针对本地范围进行更改。

程序说明

本 Python 程序使用 NumPy、pandas 和 scikit-learn 模块加载 Iris 数据集。该数据集包含三种鸢尾花(iris)的萼片长度、萼片宽度、花瓣长度和花瓣宽度测量值,使用 scikit-learn 的 load_iris 函数加载。之后,数据被转换为一个名为“df”的 pandas DataFrame,其列名与数据集的特征名称相匹配。使用 `with` 语句中的 `pd.option_context` 临时设置 pandas DataFrame 的显示选项。这些选项的示例包括显示所有行和列(将 `display.max_rows` 和 `display.max_columns` 设置为 `None`)以及将显示精度调整为三位小数(将 `display.precision` 设置为 `3`)。`print(df)` 行在 `with` 块内显示更新后的 DataFrame,提供了 Iris 数据集的准确而全面的描述。应用于 panda 设置的修改不会影响全局设置,而仅适用于 `with` 语句的参数范围内。

输出

     sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
0                  5.1               3.5                1.4               0.2
1                  4.9               3.0                1.4               0.2
2                  4.7               3.2                1.3               0.2
3                  4.6               3.1                1.5               0.2
4                  5.0               3.6                1.4               0.2
5                  5.4               3.9                1.7               0.4
6                  4.6               3.4                1.4               0.3
7                  5.0               3.4                1.5               0.2
8                  4.4               2.9                1.4               0.2
9                  4.9               3.1                1.5               0.1
10                 5.4               3.7                1.5               0.2
..                ...               ...                ...               ...
140                6.7               3.1                5.6               2.4
141                6.9               3.1                5.1               2.3
142                5.8               2.7                5.1               1.9
143                6.8               3.2                5.9               2.3
144                6.7               3.3                5.7               2.5
145                6.7               3.0                5.2               2.3
146                6.3               2.5                5.0               1.9
147                6.5               3.0                5.2               2.0
148                6.2               3.4                5.4               2.3
149                5.9               3.0                5.1               1.8

方法 3:使用 pd.set_option()

此技术类似于 `pd.option_context()`,并使用与方法 2 相同的参数,但它永久更改所有数据帧的值,并影响整个脚本,不像 `pd.option_context()`。

使用 `pd.reset_option('all')` 函数来重置值,以明确撤销修改。

语法

示例:对于指定的数据帧 (df),此代码将全局 pandas 显示参数设置为显示所有行和列,并具有无限的宽度和精度。然后再次显示数据帧,指示在选项恢复到默认值后,恢复了默认设置。

程序说明

本 Python 程序使用 NumPy、pandas 和 scikit-learn 模块加载 Iris 数据集。该数据集包含三种鸢尾花(iris)的萼片长度、萼片宽度、花瓣长度和花瓣宽度测量值,使用 scikit-learn 的 load_iris 函数加载。之后,数据被转换为一个名为“df”的 pandas DataFrame,其列名与数据集的特征名称相匹配。该程序展示了如何使用 `pd.set_option` 永久设置诸如显示所有行和列(将 `display.max_rows` 和 `display.max_columns` 设置为 `None`)、调整显示宽度(将 `display.width` 设置为 `None`)以及允许无限列宽度(将 `display.max_colwidth` 设置为 `-1`)之类的选项。然后使用 display 函数显示更新后的 DataFrame。之后,该程序使用 `pd.reset_option('all')` 将所有显示选项重置为其默认设置。为了表明修改已被重置,再次显示 'df' DataFrame。这向您展示了如何永久更改 pandas DataFrame 的显示选项并重置它们。

输出

     sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
0                  5.1               3.5                1.4               0.2
1                  4.9               3.0                1.4               0.2
2                  4.7               3.2                1.3               0.2
3                  4.6               3.1                1.5               0.2
4                  5.0               3.6                1.4               0.2
5                  5.4               3.9                1.7               0.4
6                  4.6               3.4                1.4               0.3
7                  5.0               3.4                1.5               0.2
8                  4.4               2.9                1.4               0.2
9                  4.9               3.1                1.5               0.1
10                 5.4               3.7                1.5               0.2
..                ...               ...                ...               ...
140                6.7               3.1                5.6               2.4
141                6.9               3.1                5.1               2.3
142                5.8               2.7                5.1               1.9
143                6.8               3.2                5.9               2.3
144                6.7               3.3                5.7               2.5
145                6.7               3.0                5.2               2.3
146                6.3               2.5                5.0               1.9
147                6.5               3.0                5.2               2.0
148                6.2               3.4                5.4               2.3
149                5.9               3.0                5.1               1.8
**RESET_OPTIONS**
     sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
0                  5.1               3.5                1.4               0.2
1                  4.9               3.0                1.4               0.2
2                  4.7               3.2                1.3               0.2
3                  4.6               3.1                1.5               0.2
4                  5.0               3.6                1.4               0.2
..                 ...               ...                ...               ...
145                6.7               3.0                5.2               2.3
146                6.3               2.5                5.0               1.9
147                6.5               3.0                5.2               2.0
148                6.2               3.4                5.4               2.3
149                5.9               3.0                5.1               1.8

[150 rows x 4 columns]

方法 4:使用 to_markdown()

此函数类似于 `to_string()` 方法,它在将数据帧转换为字符串对象后,还会为数据帧添加样式和格式。

语法

示例:此代码使用 scikit-learn 的 Iris 数据集创建一个 pandas DataFrame (df)。然后使用 `to_markdown()` 函数输出 DataFrame 的结构化 Markdown 版本。

程序说明

本 Python 程序使用 NumPy、pandas 和 scikit-learn 模块加载 Iris 数据集。该数据集包含三种鸢尾花(iris)的萼片长度、萼片宽度、花瓣长度和花瓣宽度测量值,使用 scikit-learn 的 load_iris 函数加载。之后,数据被转换为一个名为“df”的 pandas DataFrame,其列名与数据集的特征名称相匹配。该程序使用 `to_markdown()` 技术将整个数据帧转换为 Markdown 格式的字符串。然后使用 print 命令打印最终的 Markdown 格式文本,该文本提供了 Iris 数据集的结构化且易于理解的表示,适用于在 Jupyter Notebooks 或 Markdown 文档等 Markdown 环境中展示。

输出

|     |   sepal length (cm) |   sepal width (cm) |   petal length (cm) |   petal width (cm) |
|----:|--------------------:|-------------------:|--------------------:|-------------------:|
|   0 |                 5.1 |                3.5 |                 1.4 |                0.2 |
|   1 |                 4.9 |                3   |                 1.4 |                0.2 |
|   2 |                 4.7 |                3.2 |                 1.3 |                0.2 |
|   3 |                 4.6 |                3.1 |                 1.5 |                0.2 |
|   4 |                 5   |                3.6 |                 1.4 |                0.2 |
|   5 |                 5.4 |                3.9 |                 1.7 |                0.4 |
|   6 |                 4.6 |                3.4 |                 1.4 |                0.3 |
|   7 |                 5   |                3.4 |                 1.5 |                0.2 |
|   8 |                 4.4 |                2.9 |                 1.4 |                0.2 |
|   9 |                 4.9 |                3.1 |                 1.5 |                0.1 |
|  10 |                 5.4 |                3.7 |                 1.5 |                0.2 |
..                 ...                ...                 ...                ...
| 140 |                 6.7 |                3.1 |                 5.6 |                2.4 |
| 141 |                 6.9 |                3.1 |                 5.1 |                2.3 |
| 142 |                 5.8 |                2.7 |                 5.1 |                1.9 |
| 143 |                 6.8 |                3.2 |                 5.9 |                2.3 |
| 144 |                 6.7 |                3.3 |                 5.7 |                2.5 |
| 145 |                 6.7 |                3   |                 5.2 |                2.3 |
| 146 |                 6.3 |                2.5 |                 5   |                1.9 |
| 147 |                 6.5 |                3   |                 5.2 |                2   |
| 148 |                 6.2 |                3.4 |                 5.4 |                2.3 |
| 149 |                 5.9 |                3   |                 5.1 |                1.8 |