如何在IPython pandas中配置显示输出

24
我正在尝试在我的OS X终端中配置IPython输出,但似乎我设置的任何更改都没有生效。我正在尝试配置显示设置,使更宽的输出(如一个大的DataFrame)可以输出而不截断或作为摘要信息。
在将pandas导入到我的脚本中后,我设置了一些选项,我尝试了很多种,但是任何一种(或全部)似乎都没有生效。我正在使用%run从IPython运行脚本。我在这里做错了什么吗?
import pandas as pd

pd.set_option('display.expand_max_repr', False)
pd.set_option('display.max_columns', 30)
pd.set_option('display.width', None)
pd.set_option('display.line_width', 200)

我已经查看了Stack上的一些主题pandas FAQ,但没有找到答案,即使在使用显示命名空间(或不使用)时,如我在这里尝试的那样。

我知道有一些方法可以解决这个问题,比如在输出上调用to_string()describe()方法,但这些方法非常繁琐,并且在某些情况下并不能按预期工作,比如在一个groupby对象上调用to_string()会产生以下结果:

    id       type
106125       puzzle       gameplay_id  sitting_id  user_id           ...
106253       frames       gameplay_id  sitting_id  user_id           ...
106260       trivia       gameplay_id  sitting_id  user_id           ...

我的终端窗口大小足以容纳宽度,并且调用 pd.util.terminal.get_terminal_size() 可以正确地找到窗口大小元组,因此似乎自动检测大小也不起作用。欢迎提供任何见解!

1
嗯...天哪,我安装它已经很久了。你基本上需要安装iPython,然后在命令行中输入ipython notebook。这是一个非常有用的工具,你可以编写Markdown,包括图表、图片、视频、HTML、LaTex等等。它非常出色。在数据工作流方面,在我看来,它根本无法被超越。我为我的组织准备了这个笔记本,展示了一些iPython的功能...http://goo.gl/1Vneam 它真的不难上手。 - Woody Pride
当您启动并运行时,只需使用 from IPython.core.display import HTML 然后 HTML(df.to_html()) - Woody Pride
@WoodyPride 感谢你对笔记本的入门介绍 =) - Chrispy
1
@Chrispy,你错过了max_colwidth...看起来你有一个很长的列? - Andy Hayden
@AndyHayden 我真的不确定。它应该是 set_option('display.max_colwidth', 200) 吗? - Chrispy
显示剩余5条评论
2个回答

25

仅为完整起见(我会将我的评论添加为答案),您忽略了:

pd.options.display.max_colwidth  # default is 50

这限制了单个列的最大长度。

这里有相当多的配置选项,如果你正在使用ipython,则可以通过tab键自动补全以查找完整的显示选项集

pd.options.display.<tab>

Andy -- 当我在master中尝试设置display.max_colwidth=None时,我得到了ValueError: Value must have type '<type 'int'>'的错误。你有什么想法如何去除这个限制(以与其他选项的None相同的方式去除限制)? - Amelio Vazquez-Reina
2
@user815423426 你尝试过 display.max_colwidth=0 吗? - Andy Hayden

0

该解决方案适用于字符串,但不适用于数字列。在这种情况下,为了获得正确的宽度,可以更改格式:

pd.set_option('display.float_format', '{:15.10f}'.format)

另外,如果只想更改显示一次而不是整个笔记本:

with pd.option_context('display.max_colwidth', None):
    print(df)  # or display(df)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接