如何使用 Pandas 显示 DataFrame 中的所有行?


Pandas 是 Python 中一个强大且流行的数据处理库,它提供了一种灵活且高效的方式来处理和分析数据。Pandas 的关键特性之一是它的 DataFrame 对象,它是一个二维表格数据结构,类似于电子表格或 SQL 表格。

在 Jupyter notebook 或 Python 控制台中直接打印 Pandas DataFrame 时,如果 DataFrame 具有许多行,它会自动截断显示输出。默认情况下,仅显示有限数量的行和列,以确保输出简洁易读。可以通过修改 Pandas 模块的 max_rows 和 max_columns 选项来更改此默认行为。

使用 to_string() 或 to_markdown() 函数显示所有行

在 pandas 中,to_string() 函数用于显示完整的 DataFrame,即使它包含大量超过最大显示限制的行或列。默认情况下,当 DataFrame 包含的行或列多于指定的最大显示限制时,pandas 会截断 DataFrame 的输出。但是,to_string() 函数允许显示 DataFrame 的所有行,无论其数量如何。

Pandas 中的 to_markdown() 函数可用于将 DataFrame 转换为 Markdown 格式的表格,该表格可以轻松地在 Jupyter notebook、网站或 README 文件中显示。生成的表格易于阅读和理解,因为标题和值用管道分隔并对齐以提高可读性。此外,to_markdown() 函数支持多个选项,允许自定义输出,例如隐藏索引、指定对齐方式和自定义表标题。

语法

要使用 Pandas 显示 DataFrame 中的所有行,您需要遵循以下语法:

print(pandas.dataFrameName.to_string())
OR
print(pandas.dataFrameName.to_markdown())

要使用 to_string() 函数,只需在 DataFrame 上调用它并使用 print() 函数显示生成的文本即可。此方法允许自定义输出,包括设置要显示的最大行数、指定列宽以及选择如何显示缺失值。

要使用 to_markdown() 函数,只需在 DataFrame 上调用它并使用 print() 函数显示生成的文本即可。此方法也以更好的格式显示所有行。

示例

此代码将 CSV 数据导入名为 cricketers_df 的 Pandas DataFrame,其中包含 20 位退役板球运动员的详细信息。DataFrame 的每一行代表一位板球运动员,并包含他们的姓名、国家、首次亮相年份和退役年份。

最后,使用 to_string() 方法将整个 DataFrame 打印到控制台。此方法将 DataFrame 转换为可以打印到控制台的字符串表示形式。由于使用了 to_string() 方法,在这里我们可以看到 DataFrame 的所有行。

import pandas as pd
cricketers_df = pd.read_csv('cricketers.csv')
print(cricketers_df.to_string())

输出

                    Name       Country  Debut Year  Retirement Year
0       Sachin Tendulkar         India        1989             2013
1             Brian Lara   West Indies        1990             2007
2          Ricky Ponting     Australia        1995             2012
3         Jacques Kallis  South Africa        1995             2014
4         Inzamam-ul-Haq      Pakistan        1991             2007
5      Sanath Jayasuriya     Sri Lanka        1989             2011
6   Muttiah Muralitharan     Sri Lanka        1992             2010
7            Shane Warne     Australia        1992             2007
8          Glenn McGrath     Australia        1993             2007
9            Anil Kumble         India        1990             2008
10        Sourav Ganguly         India        1992             2008
11          Rahul Dravid         India        1996             2012
12            VVS Laxman         India        1996             2012
13        Adam Gilchrist     Australia        1996             2008
14        Matthew Hayden     Australia        1994             2009
15            Mark Waugh     Australia        1991             2002
16           Steve Waugh     Australia        1985             2004
17       Michael Vaughan       England        1999             2009
18       Andrew Flintoff       England        1998             2009
19    Marcus Trescothick       England        2000             2008
20       Kevin Pietersen       England        2004             2018

示例

在这个例子中,我们使用了相同的数据,并从预先存在的 CSV 文件中读取数据。这次,我们使用 DataFrame 上的 to_markdown() 方法打印所有数据。

import pandas as pd
cricketers_df = pd.read_csv('cricketers.csv')
print(cricketers_df.to_markdown())

输出

|    | Name                 | Country      |   Debut Year |   Retirement Year |
|---:|:---------------------|:-------------|-------------:|------------------:|
|  0 | Sachin Tendulkar     | India        |         1989 |              2013 |
|  1 | Brian Lara           | West Indies  |         1990 |              2007 |
|  2 | Ricky Ponting        | Australia    |         1995 |              2012 |
|  3 | Jacques Kallis       | South Africa |         1995 |              2014 |
|  4 | Inzamam-ul-Haq       | Pakistan     |         1991 |              2007 |
|  5 | Sanath Jayasuriya    | Sri Lanka    |         1989 |              2011 |
|  6 | Muttiah Muralitharan | Sri Lanka    |         1992 |              2010 |
|  7 | Shane Warne          | Australia    |         1992 |              2007 |
|  8 | Glenn McGrath        | Australia    |         1993 |              2007 |
|  9 | Anil Kumble          | India        |         1990 |              2008 |
| 10 | Sourav Ganguly       | India        |         1992 |              2008 |
| 11 | Rahul Dravid         | India        |         1996 |              2012 |
| 12 | VVS Laxman           | India        |         1996 |              2012 |
| 13 | Adam Gilchrist       | Australia    |         1996 |              2008 |
| 14 | Matthew Hayden       | Australia    |         1994 |              2009 |
| 15 | Mark Waugh           | Australia    |         1991 |              2002 |
| 16 | Steve Waugh          | Australia    |         1985 |              2004 |
| 17 | Michael Vaughan      | England      |         1999 |              2009 |
| 18 | Andrew Flintoff      | England      |         1998 |              2009 |
| 19 | Marcus Trescothick   | England      |         2000 |              2008 |
| 20 | Kevin Pietersen      | England      |         2004 |              2018 |

我们学习了如何使用 Pandas 中的 to_string()to_markdown() 函数显示 DataFrame 中的所有行。to_string() 函数是处理大型 DataFrame 的有用工具,因为它允许轻松可视化和分析 DataFrame 中的所有数据。

与仅将 DataFrame 作为字符串输出的 to_string() 不同,to_markdown() 输出一个可用于文档的 markdown 表格。生成的表格易于阅读且外观专业。

更改默认打印设置以显示所有行

Pandas 的 option_context() 函数允许在指定的上下文中临时修改 DataFrame 的显示选项。使用此函数,我们可以更改各种显示选项,例如要显示的最大行数和列数、每列的显示宽度以及浮点值的精度。使用 option_context(),我们可以临时修改显示选项以查看所有行或列,而无需永久更改选项。

在 Pandas 中,set_option() 是一种允许您设置数据显示方式的不同选项的方法。一个有用的选项是 display.max_rows 选项,它控制在 DataFrame 中显示的最大行数。通过将此值设置为 None,您可以显示 DataFrame 中的所有行,从而更轻松地查看和分析数据。

语法

要通过更改默认设置使用 Pandas 显示 DataFrame 中的所有行,您需要遵循以下语法

with pandas.option_context('display.max_rows', None,):
   print(dataframeName)

提供的语法将显示选项设置为显示名为“dataframeName”的 Pandas DataFrame 中的所有行。option_context() 函数临时将可显示的最大行数设置为 None,这意味着打印 DataFrame 时将显示 DataFrame 中的所有行。

pandas.set_option('display.max_rows', None)
print(dataframeName)

要使用 set_option(),只需传入您要设置的选项及其值,例如:pd.set_option('display.max_rows', None)。设置选项后,任何后续的 DataFrame 输出都将反映您所做的更改。此函数所做的更改是永久性的,直到再次更改。

示例

此代码读取 CSV 文件 fruits.csv,并将数据存储在 fruits_df 中,其中包含有关各种水果的数据,包括它们的名称、颜色、重量和价格。DataFrame 包含 15 个条目,每个条目代表一种不同的水果。

然后,代码使用 option_context() 函数临时将 DataFrame 中要显示的最大行数设置为 None。这意味着打印 DataFrame 时将显示 DataFrame 的所有行,而不仅仅是摘要。

最后,代码使用 print(fruits_df) 打印 fruits_df DataFrame,由于 option_context() 设置,它将显示所有 15 行。

import pandas as pd
fruits_df = pd.read_csv('fruits.csv')
with pd.option_context('display.max_rows', None,):
   print(fruits_df)

输出

          Name   Color  Weight (oz)  Price ($)
0        Apple     Red          4.0       0.50
1       Orange  Orange          6.0       0.40
2       Banana  Yellow          5.0       0.20
3       Grapes   Green          3.0       0.30
4    Pineapple   Brown         16.0       1.50
5   Strawberry     Red          1.0       0.10
6   Watermelon   Green        128.0       2.00
7         Kiwi   Brown          3.0       0.30
8        Mango  Orange          8.0       1.00
9         Pear   Green          5.0       0.40
10       Peach  Orange          6.0       0.50
11        Plum  Purple          4.0       0.40
12      Cherry     Red          0.5       0.10
13   Blueberry    Blue          0.3       0.05
14   Raspberry     Red          0.2       0.05

示例

在这个例子中,我们通过从 CSV 文件读取数据使用了相同的水果数据。然后,我们使用 set_option() 更改默认设置并打印所有数据。

import pandas as pd
fruits_df = pd.read_csv('fruits.csv')
pd.set_option('display.max_rows', None)
print(fruits_df)

输出

          Name   Color  Weight (oz)  Price ($)
0        Apple     Red          4.0       0.50
1       Orange  Orange          6.0       0.40
2       Banana  Yellow          5.0       0.20
3       Grapes   Green          3.0       0.30
4    Pineapple   Brown         16.0       1.50
5   Strawberry     Red          1.0       0.10
6   Watermelon   Green        128.0       2.00
7         Kiwi   Brown          3.0       0.30
8        Mango  Orange          8.0       1.00
9         Pear   Green          5.0       0.40
10       Peach  Orange          6.0       0.50
11        Plum  Purple          4.0       0.40
12      Cherry     Red          0.5       0.10
13   Blueberry    Blue          0.3       0.05
14   Raspberry     Red          0.2       0.05

结论

我们学习了如何通过更改 Pandas 中的默认打印设置来显示 DataFrame 中的所有行。option_context() 函数有助于提高 DataFrame 的可读性和可用性,并使分析大型数据集更容易。修改后的显示选项仅在指定的上下文中有效,并且在上下文退出后返回原始设置。

set_option() 方法与 option_context() 一样有用,但唯一的缺点是它会永久更改打印设置,直到再次更改。

更新于:2023年5月12日

12K+ 次查看

启动您的 职业生涯

完成课程获得认证

开始学习
广告