【问题标题】:How to make pandas show the entire dataframe without cropping it by columns?如何让熊猫显示整个数据框而不按列裁剪?
【发布时间】:2020-10-12 19:17:39
【问题描述】:

我试图将函数 f(x) 的三次样条插值信息表示为数据帧。 尝试打印到 spyder 时,我发现列被切断了。当试图在 Jupiter Lab 中重现输出时,我得到了同样的结果。 当我通过终端在 ipython 中运行时,我得到了所需的完整数据帧输出。 我搜索了 integnet 并尝试了 pandas 命令设置选项 pd.set_options(),但没有任何结果。

我附上 ipython 中输出的屏幕截图。

【问题讨论】:

  • 不要使用print(df) 语句而只使用df
  • 谢谢。但这并不能解决问题。是的,它有效,但仅在 jupyter 中有效,并且如果在单独的单元格中调用 df。

标签: pandas ipython jupyter-lab


【解决方案1】:

可以使用pd.set_options(display.max_columns=1000)指定最大行数或列数

但您必须设置任意值,而是使用None 来确保覆盖所有尺寸。

对于行,使用:

pd.set_option('display.max_rows', None)

对于列,使用:

pd.set_option('display.max_columns', None)

【讨论】:

  • 即使是无限列,这是否仍然受到display.width 的限制?
【解决方案2】:

在 Juputer 中可以使用:

from IPython.display import display, HTML

而不是

print(dataframe)

在任何地方使用

display(HTML(dataframe.to_html()))

这将创建一个漂亮的表。

不幸的是,这在 spyder 中不起作用。所以建议你可以尝试调整ipython的宽度。但在大多数情况下,这会使输出变得很差或不可读。

在尝试了数据框方法后,我发现似乎是裁剪设置。

在我使用的 Spyder 中:

pd.set_option('expand_frame_repr', False)
print(dataframe)

这个方法解释了为什么以前增加 max_column 对我没有帮助。

【讨论】:

    【解决方案3】:

    这是显示宽度的结果。您可以使用以下set_options()

    pd.set_options(display.width=1000) #make huge
    

    您可能还必须提高最大列数,但它应该足够聪明,可以在您增大宽度后自动调整:

    pd.set_options(display.max_columns=None)
    

    【讨论】:

    • 谢谢。 pd.set_option("display.width", 1000) 关闭裁剪。
    • 很高兴它有效。如果这有助于解决您的问题,请考虑 marking it as an accepted answer。这有助于堆栈溢出的其他用户找到他们需要的答案。
    猜你喜欢
    • 1970-01-01
    • 2023-01-19
    • 2021-03-22
    • 2022-01-07
    • 2020-07-14
    • 2015-11-22
    • 1970-01-01
    • 2022-10-06
    • 2017-11-26
    相关资源
    最近更新 更多