【发布时间】:2017-02-02 10:59:18
【问题描述】:
我在 pandas 数据框中有几列包含长文本字符串,但我只对其中一个感兴趣。有没有办法使用类似于pd.set_option('max_colwidth', 60) 的东西,但仅用于单列,而不是扩大我的 df 中所有列的宽度?
【问题讨论】:
我在 pandas 数据框中有几列包含长文本字符串,但我只对其中一个感兴趣。有没有办法使用类似于pd.set_option('max_colwidth', 60) 的东西,但仅用于单列,而不是扩大我的 df 中所有列的宽度?
【问题讨论】:
如果要更改 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'})
【讨论】:
width 提供的值。可能值得强调的是,这设置了最大宽度而不是固定大小的宽度。
在 Pandas 参考资料的this page 中概述了我在较新版本的 Pandas 上找到的最简单的解决方案。搜索display.max_colwidth——页面下方大约 1/3 处描述了如何使用它,例如:
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),它会更改小数位数。
【讨论】:
display 的一个很好的接触(需要在上下文中漂亮地打印表格,例如for 循环或with 子句)。
display 的原因真的很好——我没有解释这一点:-)