是否有一种简洁的方法可以仅针对当前命令显示 pandas 中的所有行?

新手上路,请多包涵

有时我想显示 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 许可协议

阅读 408
2 个回答

您可以编写一个显式调用 display 的函数

例如,考虑这个功能:

 from IPython.display import display

def show_more(df, lines):
    foo = 1
    display(df)
    foo = 2

当我调用该函数时(刚刚尝试过):

 >> show_more(df, 1000)
... # <- Shows here the DF

然后它显示数据帧,即使行 foo = 2之后 执行。因此,您可以设置选项而不是行 foo = 1 并在行中取消设置 foo = 2 。实际上,您可能只使用问题中的上下文管理器。

原文由 Ami Tavory 发布,翻译遵循 CC BY-SA 3.0 许可协议

这不会显示任何内容,因为它不会返回任何内容:

 with pd.option_context("display.max_rows", 1000): myDF

with 块内调用 display 应该可以工作:

 with pd.option_context("display.max_rows", 1000):
    display(myDF)

原文由 Stop harming Monica 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题