是否有一种方法可以在交互或脚本执行模式下扩大输出的显示?

具体来说,我在Pandas DataFrame上使用了describe()函数。当DataFrame是五列(标签)宽时,我得到了我想要的描述性统计数据。然而,如果DataFrame有更多的列,统计数据将被抑制,并返回如下内容:

>> Index: 8 entries, count to max
>> Data columns:
>> x1          8  non-null values
>> x2          8  non-null values
>> x3          8  non-null values
>> x4          8  non-null values
>> x5          8  non-null values
>> x6          8  non-null values
>> x7          8  non-null values

无论有6列还是7列,都给出“8”值。“8”指什么?

我已经尝试过将IDLE窗口拖大,以及增加“配置IDLE”宽度选项,但无济于事。


当前回答

试试这个:

pd.set_option('display.expand_frame_repr', False)

从文档中可以看到:

显示。Expand_frame_repr:布尔值 是否跨多行打印宽DataFrame的完整DataFrame repr, max_columns仍然被尊重,但如果它的宽度超过display.width,输出将跨多个“页”环绕。[默认值:True][当前:True]

看到:pandas.set_option。

其他回答

如果你想临时设置选项来显示一个大的数据帧,你可以使用option_context:

with pd.option_context('display.max_rows', None, 'display.max_columns', None):
    print (df)

退出with块时,选项值将自动恢复。

下面的代码将在打印NumPy数组时增加宽度。

它在Jupyter Notebook上给出了很好的结果。

import numpy as np
np.set_printoptions(linewidth=160)

要在笔记本中使用上下文,

from IPython.display import display

with pd.option_context('display.max_rows', None,
                       'display.max_columns', None):
    display(df)

*基于之前的答案

您可以使用这个自定义函数为Pandas数据框架显示内容。

def display_all(df):     # For any Dataframe df
   with pd.option_context('display.max_rows',1000): # Change number of rows accordingly
      with pd.option_context('display.max_columns',1000): # Change number of columns accordingly
          display(df)

display_all(df.head()) #传递这个函数到你的数据帧和voilà!

你不需要用pd。Set_option用于整个笔记本,只用于单个单元格。

根据v0.18.0的文档,如果你在终端上运行(即,不是IPython notebook, qtconsole或IDLE),让Pandas自动检测你的屏幕宽度并根据它显示的列数进行调整是一个双行程序:

pd.set_option('display.large_repr', 'truncate')
pd.set_option('display.max_columns', 0)