ipython笔记本pandas最大允许列

时间:2014-11-27 05:43:15

标签: python pandas ipython ipython-notebook

我有一个包含十列的简单csv文件!

当我在笔记本中设置以下选项并打印我的csv文件(在pandas数据框中)时,它不会从左到右打印所有列,它打印前两个,下面两个下面等等。

我使用了这个选项,为什么它不起作用?

pd.option_context("display.max_rows",1,"display.max_columns",100)

即使这似乎也不起作用:

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

3 个答案:

答案 0 :(得分:30)

我假设你想在笔记本中显示你的数据而不是以下选项对我来说很好(IPython 2.3):

import pandas as pd
from IPython.display import display
data = pd.read_csv('yourdata.txt')

直接设置选项

pd.options.display.max_columns = None
display(data)

或者,使用您显示的set_option方法实际上也可以正常工作

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

如果您不想为整个脚本设置此选项,请使用上下文管理器

with pd.option_context('display.max_columns', None):
    display(data)

如果这没有帮助,您可以举一个简单的例子来重现您的问题。

答案 1 :(得分:0)

您还可以通过让pandas返回HTML标记,然后让IPython呈现HTML表来显示所有数据。

import pandas as pd
from IPython.display import HTML
data = pd.read_csv('yourdata.csv')
HTML(data.to_html())

使用IPython 3.0.0和Python 3.4,我发现@Jakob所描述的display(data)将呈现为具有向上/向下和向左/向右滚动条的表,但该表仍然比单元格宽并且一些列在屏幕右侧。要查看所有数据,必须折叠单元格 - 这会添加滚动条。因此,您在滚动框中有一个滚动框,这是不理想的,因为您必须在双向滚动条之间切换焦点以在数据中一直导航。

使用HTML方法,您可以按原样呈现巨大的表,而不使用任何滚动条。然后可以向下折叠此单元格以仅显示单个垂直和水平条,这更加用户友好。

使用HTML的警告是表格渲染需要更长的时间。我只使用了~150x50矩阵,速度差异很明显,但不是很不方便。如果您有一个巨大的表,请不要使用此方法一次显示整个事物。也就是说,如果你确实拥有一张巨大的桌子,那么立即渲染整个东西显然是一个坏主意,但你会尝试这样做。

答案 2 :(得分:0)

我发现这个问题是Google上的热门歌曲之一。在jupyter实验室中,

pandas.set_option("display.max_columns", None)

现在看来可以正常工作-我的示例是32列,它以前被截断了,不再可用了。