我可以在pandas中设置可变列宽吗?

scr*_*lex 12 python pandas

我在pandas数据框中有多个带有长字符串的列,但我只对检查其中一个有兴趣.有没有办法使用的线沿线的东西的方式pd.set_option('max_colwidth', 60),但对于单个列而已,而不是扩大所有列的宽度,在我的DF?

Tom*_*ush 20

我在 Pandas 的新版本中找到的最简单的解决方案在 Pandas 参考资料的这个页面中进行了概述。搜索display.max_colwidth- 页面下方大约 1/3 处描述了如何使用它,例如:

pd.set_option('max_colwidth', 400)

请注意,这很好地设置了会话的值,或者直到更改为止。

如果您只想进行临时更改,请参阅有关临时设置上下文的信息,例如:

from pandas import option_context

with option_context('display.max_colwidth', 400):
    display(df.head())
Run Code Online (Sandbox Code Playgroud)

我没有找到设置单个列的明显方法,但这种方法只会将需要更多空间的那些扩展到您设置的最大值。

如果尝试调整如何适应屏幕上/表格中的内容/为其他列腾出空间,也可能有用pd.set_option('precision', 2),这会改变小数位数。


Rom*_*ain 16

如果要更改Jupyter Notebook中的显示,可以使用" 样式"功能.要仅对某些列使用此格式,只需通过subset参数指示要放大的列.这基本上是HTML和CSS.

### Test data
df = DataFrame({'text': ['foo foo foo foo foo foo foo foo', 'bar bar bar bar bar'],
                 'number': [1, 2]})

df.style.set_properties(subset=['text'], **{'width': '300px'})
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 对我来说不幸的是,我认为这对熊猫0.23.0没有任何作用。将这种样式应用于我的df和其中的目标列,目标列的大小将保持不变,而不是为width提供的值。可能值得强调此设置最大宽度而不是固定大小的宽度。 (8认同)