我有一个简单的CSV文件,它有十列!
当我在笔记本中设置以下选项并打印我的CSV文件(它在pandas数据框中),它并没有从左到右打印所有列,而是将前两列打印在上方,接下来的两列打印在下方,依此类推。
我使用了这个选项,为什么它没有起作用?
pd.option_context("display.max_rows",1,"display.max_columns",100)
即使这样似乎也不起作用:
pandas.set_option('display.max_columns', None)
我有一个简单的CSV文件,它有十列!
当我在笔记本中设置以下选项并打印我的CSV文件(它在pandas数据框中),它并没有从左到右打印所有列,而是将前两列打印在上方,接下来的两列打印在下方,依此类推。
我使用了这个选项,为什么它没有起作用?
pd.option_context("display.max_rows",1,"display.max_columns",100)
即使这样似乎也不起作用:
pandas.set_option('display.max_columns', None)
我假设你想在笔记本中显示你的数据,那么以下选项对我来说都很好用(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)
如果这不起作用,您可以提供一个最小化的示例来重现您的问题。
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的矩阵,速度差异是明显的,但并不影响使用。如果您有一个巨大的表格,请勿使用此方法一次性显示整个表格。也就是说,如果您确实有一个巨大的表格,那么无论如何尝试都会是个坏主意。
我在谷歌搜索中找到了这个问题,它是其中的一个热门结果。在Jupyter Lab中,
pandas.set_option("display.max_columns", None)
现在看起来运行良好 - 我的示例有32列,以前被截断了,现在不再截断。
display(data)
类似于print data
,但使用IPython丰富的显示系统。如果您只调用数据,则会将数据表示作为输出(请注意OUT[x]),这对前两个选项很有效,但上下文管理器需要显示调用。 - Jakobdisplay
显示“所有”可用的内容,但正如您在问题中展示的那样,pandas 有一些默认设置来裁剪数据框。您还可以查看 qgrid,它是显示 pandas 表格的不错补充。 - Jakob