如何使用 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() 一样有用,但唯一的缺点是它会永久更改打印设置,直到再次更改。