在PyCharm的内置控制台中获得更广泛的输出

时间:2014-09-02 16:53:04

标签: python pandas ipython pycharm

我对使用PyCharm IDE相对较新,并且在内置控制台会话中无法找到更好地塑造输出的方法。我通常使用非常宽的数据帧,可以很容易地放在我的显示器上,但显示器正在切割和包装它们,而不是需要它们。

是否有人知道更改此行为的设置以利用屏幕的整个宽度?

编辑:我没有足够的声誉来发布截图,但链接如下: http://imgur.com/iiBK3iU

我想在几列之后阻止它包装(例如,'ReadmitRate'列应该紧靠'SNFDaysPerSNFCase'的右侧)

6 个答案:

答案 0 :(得分:51)

似乎我错误地认为问题是PyCharm中的问题(例如,可以在设置或偏好中解决)。它实际上与控制台会话本身有关。控制台尝试自动检测显示区域的宽度,但是当失败时它默认为80个字符。可以使用以下命令覆盖此行为:

import pandas as pd
desired_width = 320    
pd.set_option('display.width', desired_width)

当然,您可以将desired_width设置为显示器可以容忍的内容。 感谢@TidB提出的建议,即我最初的关注点并未集中在正确的区域。

答案 1 :(得分:19)

对我来说,仅在pycharm中设置'display.width'是不够的,它会一直以截断形式显示。

但是,将选项pd.set_option("display.max_columns", 10)与显示宽度一起添加是可行的,并且我能够在“运行”输出中看到整个数据帧。

总结:

import pandas as pd    
pd.set_option('display.width', 400)
pd.set_option('display.max_columns', 10)

答案 2 :(得分:16)

打印Pandas数据帧时,{ "TempRequest" :{ "TempR1" : { "id" : "1212", "name" : "app", } } } 的答案很有效(谢谢!)。

但是,如果要打印NumPy数组,还需要设置@mattvivier

np.set_printoptions

请参阅docs on NumPy and set_printoptions

答案 3 :(得分:1)

在重新安装@mattvivier's answer之后,我注意到pandas仍然最多只能输出5列,为解决此问题,我添加了另一行代码以增加显示的最大列数。

import pandas as pd
pd.set_option('display.max_columns', 15)
desired_width = 200
pd.set_option('display.width', desired_width)

在Python控制台中执行代码时,效果很好。

答案 4 :(得分:1)

def pd_set_df_view_options(max_rows=1000, max_columns=350, display_width=320):

    # Show more than 10 or 20 rows when a dataframe comes back.
    pd.set_option('display.max_rows', max_rows) 
    # Columns displayed in debug view
    pd.set_option('display.max_columns', max_columns)

    pd.set_option('display.width', display_width)

# run
pd_set_df_view_options(max_rows=1000, max_columns=350, display_width=320)

答案 5 :(得分:0)

添加到 Contago 的回答中:

通用设置

import numpy as np
import pandas as pd


desired_width = 320

## dataframe ##
# increase dataframe print area
pd.set_option('display.width', desired_width)

# increase no. of df columns displayed
pd.set_option('display.max_columns', n)


## numpy array ##
# increase numpy array print area
np.set_printoptions(linewidth = desired_width)


特定于上下文的(临时)

# dataframe
with pd.option_context('display.max_columns', 20,
                       'display.width', 320):
    print(df)

# numpy array
with np.printoptions(linewidth=320):
    print(np.array(df))