如何限制Pandas中列标题的宽度

2024-07-05 14:17:17 发布

您现在位置:Python中文网/ 问答频道 /正文

在显示数据帧等时,如何限制Pandas中的列宽?我知道display.max_colwidth,但它不影响列名。另外,我不想把名字分开,而是要截断。在

如果我设置display.max_colwidth,它肯定会限制值,并用省略号将它们缩短,但列名保持较长且不受影响。我在documentation中没有看到这一点,也没有在大线程here或{a3}中看到它。是虫子吗?我知道我可以截断列的名称,但我希望它们长一些,否则只在显示时缩短。在

我想说的是,这就是发生的事情:

之前

     State area_harveste_2016_1000_acres area_harvested_2017_1000_acres yield_per_acr_2016_bushels yield_per_acre_2017_bushels
4  Alabama                           315                            235                      120.0                       165.0

更改宽度

^{pr2}$

之后

   State area_harveste_2016_1000_acres area_harvested_2017_1000_acres yield_per_acr_2016_bushels yield_per_acre_2017_bushels
4   A...   315                           235                           1...                       1...

更新

目前,这是熊猫的确认版本(截至20.3版本,#7059和{a5}问题。在解决之前,我编写了一个解决方案,它设置和取消设置max_colwidth,并使用rename截断。如果没有这个答案,我是做不到的

def pf(df, L=15):
    """Limit ENTIRE column width (including header)"""
    O = pd.get_option("display.max_colwidth")
    pd.set_option("display.max_colwidth", L)
    print(df.rename(columns=lambda x: x[:L - 3] + '...' if len(x) > L else x))
    pd.set_option("display.max_colwidth", O)

Tags: displayareamaxpdoptionstateyieldacr