【发布时间】:2015-09-01 18:43:12
【问题描述】:
有时我想显示 pandas DataFrame 中的所有行,但只针对单个命令或代码块。
当然,我可以将“max_rows”显示选项设置为较大的数字,但之后我必须重复该命令才能恢复到我喜欢的设置。 (我个人喜欢最多 12 行)。
pd.options.display.max_rows=1000
myDF
pd.options.display.max_rows=12
这很烦人。
我在文档中读到,如果我将命令与“with”语句结合使用,我可以使用 pd.option_context() 函数来完成此操作:
with pd.option_context("display.max_rows", 1000): myDF
我无法让它工作,(不返回任何输出)。 但我认为这样的解决方案仍然对于日常的偶然使用来说太多了!
我希望有一些快速的 Python 方式来覆盖显示选项!
一个存在吗?我是否忽略了什么?
我喜欢如何通过向 .head() 函数传递 # of rows 的参数来更改 .head() 函数输出的行数,但它仍然必须低于“display.max_rows”设置...
我知道我可以始终将“display.max_rows”设置保持在很高的水平,然后在大多数情况下添加 .head(12) 函数,但我认为大多数人会同意那会有多烦人。
我确实知道,可以通过将 pandas Series 中的所有(或大部分?)值传递给诸如 list() 之类的核心函数来查看它。但这对于 DF 来说是棘手的。此外,如果不是表格格式,则很难阅读。
类似于the solution for my first question,我想可能有一种方法可以编写我自己的函数(放置在启动脚本中),但我不确定最好的编写方法。
【问题讨论】:
-
我经常发现通过 df.to_clipboard() 使用 Excel 查看大型 DataFrame,然后粘贴到 excel 中更容易。根据数据框的复杂程度,可能需要使用 df.to_excel。
-
我不同意@Alexander 的观点。当 DF 太大而无法在 Notebook 中查看时,通常是因为我没有想到正确的聚合。图表也可以提供帮助。
-
好吧,我给了 N=1000 来表示相当大但不是大得离谱的东西,但也许我应该使用更像 100 的东西。我不一定要查看“所有”行,因为如果 N 很大,显然我不想这样做。但我经常想做的不仅仅是查看 12 行,以帮助我测试不同的命令。在许多情况下,我很乐意在 12 到 60 行之间快速跳转,但我也希望在 DF 不大的情况下查看所有行。
-
有时这与适当的聚合无关,或者不可能这样做。这个问题主要是关于需要一些方便的方法来评估不同命令变体的结果(例如,评估聚合数据的不同尝试如何工作!!!)