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

具体来说,我在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。

其他回答

下面的行足以显示一个数据框架中的所有列。

pd.set_option('display.max_columns', None)

您可以使用print df.describe().to_string()强制它显示整个表。你可以像这样对任何数据帧使用to_string()。description的结果只是一个DataFrame本身。)

8是DataFrame中包含“description”的行数(因为describe计算8个统计值,最小值,最大值,平均值等)。

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

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

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

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

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

你可以通过set_printoptions来调整Pandas打印选项。

In [3]: df.describe()
Out[3]:
<class 'pandas.core.frame.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
dtypes: float64(7)

In [4]: pd.set_printoptions(precision=2)

In [5]: df.describe()
Out[5]:
            x1       x2       x3       x4       x5       x6       x7
count      8.0      8.0      8.0      8.0      8.0      8.0      8.0
mean   69024.5  69025.5  69026.5  69027.5  69028.5  69029.5  69030.5
std       17.1     17.1     17.1     17.1     17.1     17.1     17.1
min    69000.0  69001.0  69002.0  69003.0  69004.0  69005.0  69006.0
25%    69012.2  69013.2  69014.2  69015.2  69016.2  69017.2  69018.2
50%    69024.5  69025.5  69026.5  69027.5  69028.5  69029.5  69030.5
75%    69036.8  69037.8  69038.8  69039.8  69040.8  69041.8  69042.8
max    69049.0  69050.0  69051.0  69052.0  69053.0  69054.0  69055.0

然而,这并不会在所有情况下工作,因为Pandas会检测你的控制台宽度,并且它只会在输出适合控制台时使用to_string(参见set_printoptions的文档字符串)。 在这种情况下,你可以显式调用由BrenBarn回答的to_string。

更新

在0.10版本中,数据帧的打印方式发生了变化:

In [3]: df.describe()
Out[3]:
                 x1            x2            x3            x4            x5  \
count      8.000000      8.000000      8.000000      8.000000      8.000000
mean   59832.361578  27356.711336  49317.281222  51214.837838  51254.839690
std    22600.723536  26867.192716  28071.737509  21012.422793  33831.515761
min    31906.695474   1648.359160     56.378115  16278.322271     43.745574
25%    45264.625201  12799.540572  41429.628749  40374.273582  29789.643875
50%    56340.214856  18666.456293  51995.661512  54894.562656  47667.684422
75%    75587.003417  31375.610322  61069.190523  67811.893435  76014.884048
max    98136.474782  84544.484627  91743.983895  75154.587156  99012.695717

                 x6            x7
count      8.000000      8.000000
mean   41863.000717  33950.235126
std    38709.468281  29075.745673
min     3590.990740   1833.464154
25%    15145.759625   6879.523949
50%    22139.243042  33706.029946
75%    72038.983496  51449.893980
max    98601.190488  83309.051963

此外,设置Pandas选项的API改变了:

In [4]: pd.set_option('display.precision', 2)

In [5]: df.describe()
Out[5]:
            x1       x2       x3       x4       x5       x6       x7
count      8.0      8.0      8.0      8.0      8.0      8.0      8.0
mean   59832.4  27356.7  49317.3  51214.8  51254.8  41863.0  33950.2
std    22600.7  26867.2  28071.7  21012.4  33831.5  38709.5  29075.7
min    31906.7   1648.4     56.4  16278.3     43.7   3591.0   1833.5
25%    45264.6  12799.5  41429.6  40374.3  29789.6  15145.8   6879.5
50%    56340.2  18666.5  51995.7  54894.6  47667.7  22139.2  33706.0
75%    75587.0  31375.6  61069.2  67811.9  76014.9  72039.0  51449.9
max    98136.5  84544.5  91744.0  75154.6  99012.7  98601.2  83309.1