Pandas 如何显示数据框中的所有行

Pandas 如何显示数据框中的所有行

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

在Jupyter笔记本或Python控制台中直接打印Pandas DataFrame时,当DataFrame包含很多行时,它会自动截断显示输出。默认情况下,只显示有限数量的行和列,以确保输出简洁且易于阅读。可以通过修改Pandas模块的max_rows和max_columns选项来更改默认行为。

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

在Pandas中,可以使用to_string()函数来显示完整的数据框,即使它包含超过最大显示限制的大量行或列。默认情况下,当数据框包含的行或列超过指定的最大显示限制时,Pandas会截断输出。然而,to_string()函数允许显示数据框的所有行,无论其数量如何。

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

语法

为了使用Pandas显示数据框的所有行,需要按照以下语法进行操作 –

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

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

使用to_markdown()函数,只需在数据框上调用它并使用print()函数显示生成的文本。这种方法还以更好的格式显示所有行。

示例

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

最后,使用to_string()方法将整个数据帧打印到控制台。该方法将数据帧转换为可打印到控制台的字符串表示形式。由于使用了to_string()方法,可以看到数据帧的所有行。

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() 函数来显示数据框的所有行。 to_string() 函数是处理大型数据框的有用工具,因为它可以方便地可视化和分析数据框中的所有数据。

不同于简单地将数据框输出为字符串的 to_string() 函数, to_markdown() 函数输出一个可以在文档中使用的Markdown表格。生成的表格易于阅读并且专业美观。

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

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

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

语法

要通过更改默认设置使用Pandas显示数据框的所有行,需要按照以下语法:

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

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

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

要使用 set_option() ,只需传入要设置的选项及其值,像这样:pd.set_option(‘display.max_rows’, None)。一旦设置了选项,任何随后的DataFrame输出都会反映您所做的更改。此函数所做的更改是永久性的,直至再次更改。

示例

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

然后,代码使用 option_context() 函数临时将DataFrame中要显示的最大行数设置为None。这意味着在打印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中的默认打印设置,我们学会了如何显示数据框中的所有行。 option_context() 函数可以帮助改善数据框的可读性和可用性,使其更容易分析大型数据集。修改的显示选项只在指定的上下文中生效,并在退出上下文后恢复为原始设置。

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Pandas 精选笔记