关于python:熊猫:设置没有。

Pandas: Setting no. of max rows

查看以下DataFrame时出现问题:

1
2
3
4
n = 100
foo = DataFrame(index=range(n))
foo['floats'] = np.random.randn(n)
foo

问题是它并没有在IPython笔记本中按默认值打印所有行,但是我必须切片才能查看结果行。即使以下选项也不会更改输出:

1
pd.set_option('display.max_rows', 500)

有人知道如何显示整个数组吗?


对于版本0.11.0,您需要同时更改display.heightdisplay.max_rows

1
2
pd.set_option('display.height', 500)
pd.set_option('display.max_rows', 500)

另见pd.describe_option('display')


就个人而言,我喜欢直接用赋值语句设置选项,因为多亏了ipython,通过制表符完成很容易找到选项。我发现很难记住确切的选项名是什么,所以这个方法对我很有用。

例如,我只需要记住,它从pd.options开始。

1
pd.options.<TAB>

enter image description here

大多数选项在display下可用。

1
pd.options.display.<TAB>

氧化镁

从这里,我通常输出电流值如下:

1
2
pd.options.display.max_rows
60

然后我把它设置成我想要的样子:

1
pd.options.display.max_rows = 100

另外,您应该了解选项的上下文管理器,它临时设置代码块内的选项。以字符串形式传入选项名,后跟所需的值。您可以在同一行中传递任意数量的选项:

1
2
with pd.option_context('display.max_rows', 100, 'display.max_columns', 10):
    some pandas stuff

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

1
pd.reset_option('display.max_rows')

把它们全部复位:

1
pd.reset_option('all')

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


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

1
pd.set_option('display.max_rows', 500)

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

Deprecated display.height, display.width is now only a formatting option does not control triggering of summary, similar to < 0.11.0.


在这个评论和答案中已经指出了这一点,但我将尝试对这个问题给出更直接的答案:

1
2
3
4
5
6
7
8
9
10
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)

pandas.option_context从pandas 0.13.1开始提供(pandas 0.13.1发行说明)。根据这一点,

[it] allow▼显示 you to execute a codeblock with a set of options that revert to prior settings when you exit the with block.


就像这个问题的答案一样,不需要黑客设置。写起来要简单得多:

1
print(foo.to_string())