我有一个问题,查看以下数据框架:

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

问题是它不会在ipython notebook中按默认值打印所有行,但我必须切片才能查看结果行。即使下面的选项也不会改变输出:

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

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


当前回答

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

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)

熊猫。Option_context自pandas 0.13.1 (pandas 0.13.1发行说明)以来可用。 根据这个,

[it]允许[s]你用一组选项来执行一个代码块,当你退出with块时,这些选项会恢复到之前的设置。

其他回答

pd.options.display。max_rows =无

这将显示所有的行

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

with pd.option_context('display.min_rows', 50, 'max_columns', None):
    display(df)

同样,代替显示。Max_rows使用显示。min_rows代替。这应该在不设置display.max_rows的情况下工作。

设置无限行数使用

没有一个

也就是说,

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

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

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

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

现在如果你使用运行单元只有数据框架,没有任何头部或尾部标签 作为

df

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

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

在木星行不通! 而不是使用:

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

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

你还应该设置'display.min_rows'。

pd.set_option('display.min_rows', 500)  # <-add this!
pd.set_option('display.max_rows', 500)

如果总行数> display.max_rows,

然后,设置只显示。Max_rows将不起作用。

(是的,这很令人困惑。这应该被修改。)