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

时间:2016-09-24 19:27:40

标签: python pandas

我在pandas数据框中有多个带有长文本字符串的列,但我只想检查其中一个。有没有办法使用pd.set_option('max_colwidth', 60)但仅限单列的内容,而不是扩展df中所有列的宽度?

2 个答案:

答案 0 :(得分:13)

如果要更改Jupyter Notebook中的显示,可以使用Style功能。 要仅对某些列使用此格式,只需通过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'})

enter image description here

答案 1 :(得分:4)

this page中概述了我在较新版本的Pandas上找到的最简单的解决方案。搜索display.max_colwidth-在页面下半部约三分之一的位置说明如何使用它,例如:

pd.set_option('max_colwidth', 400)

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

如果您只想进行临时更改,请参见this info,以临时设置上下文,例如:

from pandas import option_context

with option_context('display.max_colwidth', 400):
    display(df.head())

我没有找到一种明显的方法来设置各个列,但是这种方法只会将需要更多空间的列按比例放大到您设置的最大值。

如果试图调整屏幕/表格/其他列的显示空间,pd.set_option('precision', 2)也可能会使用,它会更改小数位数。