熊猫:没有.最大行数

And*_*ndy 96 python formatting pandas ipython-notebook

我在查看以下内容时遇到问题DataFrame:

n = 100
foo = DataFrame(index=range(n))
foo['floats'] = np.random.randn(n)
foo
Run Code Online (Sandbox Code Playgroud)

问题是它不会在ipython笔记本中默认打印所有行,但我必须切片才能查看生成的行.即使以下选项也不会更改输出:

pd.set_option('display.max_rows', 500)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何显示整个阵列?

Wou*_*ire 156

对于版本0.11.0,您需要更改两者display.max_rowsdisplay.height.

pd.set_option('display.max_rows', 500)
Run Code Online (Sandbox Code Playgroud)

另见display.max_rows.

  • 现在不推荐使用高度,因此display.max_rows选项就足够了. (37认同)
  • 不确定这是否是 jupyter 实验室的问题,但这一切都不起作用。只有 'display.max_rows' = None 可以。 (7认同)
  • 对于只查看接受的答案的人:使用`with pd.option_context('display.height',500,'display.max_rows',500):`仅暂时设置这些. (6认同)
  • pd.describe_option('display')的+1,我不知道所有的选项 (4认同)
  • @antonavy我不知道这是否是您的问题,但是当将“display.max_rows”设置为整数时,还需要设置“display.min_rows”来影响截断视图中显示的行数(当“max_rows”为超过)。 (2认同)

Adr*_*aud 33

pd.set_option('display.max_rows', 500)
df
Run Code Online (Sandbox Code Playgroud)

不工作的Jupyter!
而是使用:

pd.set_option('display.max_rows', 500)
df.head(500)
Run Code Online (Sandbox Code Playgroud)

  • https://github.com/pandas-dev/pandas/issues/28654#issuecomment-536094705 中有一个解释,为什么会发生这种情况。您还必须设置“display.min_rows”,因为“display.max_rows”是显示“display.min_rows”角色数时的阈值。我不知道他们是怎么想出这些名字的。 (10认同)
  • 现在,第一行似乎可以在没有 head() 技巧的 Jupyter Notebook 中工作。 (2认同)

sta*_*iet 28

我不知道为什么没人提到这个。

您还应该设置'display.min_rows'.

pd.set_option('display.min_rows', 500)  # <-add this!
pd.set_option('display.max_rows', 500)
Run Code Online (Sandbox Code Playgroud)

如果total number of rows > display.max_rows ,

那么,仅仅设置display.max_rows行不通的。

(是的,这很混乱。应该修改。)

  • 这应该是公认的答案。如果你有 2000 行,并且想要显示 500 行,令人困惑的是你需要设置 `min_rows`。 (3认同)

Ted*_*rou 24

就个人而言,我喜欢直接使用赋值语句设置选项,因为通过iPython可以很容易地通过选项卡完成找到它们.我发现很难记住确切的选项名称是什么,所以这种方法适合我.

例如,我必须要记住的是它始于 pd.options

pd.options.<TAB>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

大多数选项都在 display

pd.options.display.<TAB>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

从这里,我通常输出当前值是这样的:

pd.options.display.max_rows
60
Run Code Online (Sandbox Code Playgroud)

然后我把它设置为我想要的:

pd.options.display.max_rows = 100
Run Code Online (Sandbox Code Playgroud)

此外,您应该了解选项的上下文管理器,它会临时设置代码块中的选项.将选项名称作为字符串传递,后跟您希望的值.您可以在同一行中传入任意数量的选项:

with pd.option_context('display.max_rows', 100, 'display.max_columns', 10):
    some pandas stuff
Run Code Online (Sandbox Code Playgroud)

您还可以将选项重置为其默认值,如下所示:

pd.reset_option('display.max_rows')
Run Code Online (Sandbox Code Playgroud)

然后重置所有这些:

pd.reset_option('all')
Run Code Online (Sandbox Code Playgroud)

通过设置选项仍然非常好pd.set_option.我发现直接使用属性更容易,而且需要get_optionset_option.

  • `with pd.option_context`是这些答案中最干净的方法; 最小的副作用. (3认同)

aru*_*run 16

设置无限行数使用

没有任何

IE,

pd.set_option('display.max_columns', None)
Run Code Online (Sandbox Code Playgroud)

现在笔记本将显示笔记本内所有数据集中的所有行;)

同样,您可以设置将所有列显示为

pd.set_option('display.max_rows', None)
Run Code Online (Sandbox Code Playgroud)

现在,如果您使用仅使用数据帧运行单元格,而没有任何头或尾标记,则为

df
Run Code Online (Sandbox Code Playgroud)

然后它将显示数据框中的所有行和列df


nea*_*mcb 10

正如@hanleyhansen在评论中指出的那样,从版本0.18.1开始,该display.height选项已被弃用,并说"使用display.max_rows".所以你只需要像这样配置它:

pd.set_option('display.max_rows', 500)
Run Code Online (Sandbox Code Playgroud)

请参阅发行说明 - pandas 0.18.1文档:

不推荐使用display.height,display.width现在只是一个格式化选项,不控制摘要的触发,类似于<0.11.0.


Gui*_*ini 9

此注释此答案中已经指出了一点,但是我将尝试对该问题给出更直接的答案:

from IPython.display import display
import numpy as np
import pandas as pd

n = 100
foo = pd.DataFrame(index=range(n))
foo['floats'] = np.random.randn(n)

with pd.option_context("display.max_rows", foo.shape[0]):
    display(foo)
Run Code Online (Sandbox Code Playgroud)

pandas.option_context是因为大熊猫0.13.1(可用大熊猫0.13.1版本说明)。根据

[it]允许您执行带有一组选项的代码块,当您退出with块时,这些选项会还原为先前的设置。


Nin*_*non 7

正如对类似问题的回答一样,无需破解设置。写起来就简单多了:

print(foo.to_string())
Run Code Online (Sandbox Code Playgroud)

  • @simtim Andy 问如何“显示整个数组”。这将做到这一点,并且比接受的答案“简单得多”。 (2认同)

小智 6

我将使用上下文管理器来设置这些选项,以便我可以控制哪个 df 应该受到影响。

with pd.option_context('display.min_rows', 50, 'display.max_columns', None):
    display(df)
Run Code Online (Sandbox Code Playgroud)

还有,代替display.max_rows使用display.min_rows。这应该无需设置即可工作display.max_rows