IPython和OS X终端输出在列限制之前是换行

时间:2014-01-16 21:57:46

标签: python terminal pandas ipython osx-mavericks

我正在使用IPython处理允许DataFrame对象的pandas模块。当我运行一些代码时,我得到一个输出,其中DataFrame输出在我的终端宽度之前被包装,尽管终端宽度应该适应长度。这个问题似乎只与pandas Series和DataFrame对象隔离,而不是说长列表。

运行pip uninstall readline然后通过easy_install重新安装readline并重新启动IPython并没有解决问题。

看到我的数据没有这样分解会很有帮助,但老实说我不知道​​从哪里开始解决这个问题。有什么见解吗?

offending output

1 个答案:

答案 0 :(得分:5)

我找到了一种解决方法,允许控制台输出更具可读性。在to_string()对象上调用DataFrame将返回对象的字符串表示形式,绕过DataFrame包含的任何固有格式,特别是因为目标是可读性。

data = DataFrame(some_long_list)
print data.to_string() # outputs to console's full-width

编辑: 来自pandas docs:“自0.10.0以来新增,默认情况下,宽数据帧将在多行中打印”。我发现这有助于作为默认值,因此您不会将行填入下一行,而是会看到按列分隔。配置输出宽度还有两种方法:

import pandas as pd 
pd.set_option('line_width', 40) # default is 80

或完全关闭环绕功能:

pd.set_option('expand_frame_repr', False)