熊猫:没有。最大行数

时间:2013-05-07 16:52:02

标签: python formatting pandas ipython-notebook

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

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

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

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

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

7 个答案:

答案 0 :(得分:131)

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

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

另见pd.describe_option('display')

答案 1 :(得分:17)

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

例如,我必须记住的是它以pd.options

开头
pd.options.<TAB>

enter image description here

大多数选项都在display

下提供
pd.options.display.<TAB>

enter image description here

从这里开始,我通常输出当前值如下:

pd.options.display.max_rows
60

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

pd.options.display.max_rows = 100

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

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

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

pd.reset_option('display.max_rows')

然后重置所有这些:

pd.reset_option('all')

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

答案 2 :(得分:15)

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

在Jupyter中不起作用
而是使用:

pd.set_option('display.max_rows', 500)
df.head(500)

答案 3 :(得分:8)

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

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

请参阅Release Notes — pandas 0.18.1 documentation

  

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

答案 4 :(得分:4)

this commentthis answer中已经指出了这一点,但是我将尝试对这个问题给出更直接的答案:

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自熊猫0.13.1(pandas 0.13.1 release notes)起可用。 根据{{​​3}},

  

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

答案 5 :(得分:1)

this answersimilar question一样,无需破解设置。写起来要简单得多:

print(foo.to_string())

答案 6 :(得分:0)

设置使用的行数不受限制

没有

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

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

类似地,您可以设置将所有列显示为

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

现在,如果您使用仅在没有任何头或尾标签的数据帧的情况下运行单元格

df

然后它将显示数据帧df

中的所有行和列