是否有一种方法可以在交互或脚本执行模式下扩大输出的显示?
具体来说,我在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”宽度选项,但无济于事。
这不是严格意义上的答案,但是让我们记住我们可以df.describe().transpose()或者df.head(n).transpose(),或者df.tail(n).transpose()。
我还发现,当标题是结构化的时,将它们作为列来阅读更容易:
header1_xxx,
header2_xxx,
header3_xxx,
我认为终端和应用程序处理垂直滚动更自然,如果这是必要的转置后。
标头通常比它们的值大,将它们全部放在一列(索引)中可以最大限度地减少它们对总表宽度的影响。
最后,其他的df描述也可以合并,这里有一个可能的想法:
def df_overview(df: pd.DataFrame, max_colwidth=25, head=3, tail=3):
return(
df.describe([0.5]).transpose()
.merge(df.dtypes.rename('dtypes'), left_index=True, right_index=True)
.merge(df.head(head).transpose(), left_index=True, right_index=True)
.merge(df.tail(tail).transpose(), left_index=True, right_index=True)
.to_string(max_colwidth=max_colwidth, float_format=lambda x: "{:.4G}".format(x))
)