我有一个包含十列的简单csv文件!
当我在笔记本中设置以下选项并打印我的csv文件(在pandas数据框中)时,它不会从左到右打印所有列,它打印前两个,下面两个下面等等。
我使用了这个选项,为什么它不起作用?
pd.option_context("display.max_rows",1,"display.max_columns",100)
即使这似乎也不起作用:
pandas.set_option('display.max_columns', None)
答案 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列,它以前被截断了,不再可用了。