有时我想显示 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
我无法让它工作,(没有返回输出)。但我认为这样的解决方案对于日常的偶然使用来说 仍然 会打字太多!
我希望有一些快速的 pythonic 方法来覆盖显示选项!
一个存在吗?我忽略了什么吗?
我喜欢如何通过向 .head() 函数传递一个行数参数来改变 .head() 函数输出的行数,但它仍然必须低于“display.max_rows”设置…
我知道我 可以 一直将“display.max_rows”设置保持在非常高的水平,然后在大部分时间添加一个 .head(12) 函数,但我认为大多数人都会同意这会有多烦人。
我确实知道可以通过将 pandas 系列中的所有(或大部分?)值传递给核心函数(例如 list())来查看它。但这对 DF 来说很棘手。此外,如果不是表格格式,则很难阅读。
类似于 我的第一个问题的解决方案,我想可能有一种方法可以编写我自己的函数(放置在启动脚本中),但我不确定编写它的最佳方法。
原文由 MMelnicki 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以编写一个显式调用
display
的函数例如,考虑这个功能:
当我调用该函数时(刚刚尝试过):
然后它显示数据帧,即使行
foo = 2
在 之后 执行。因此,您可以设置选项而不是行foo = 1
并在行中取消设置foo = 2
。实际上,您可能只使用问题中的上下文管理器。