首页 > 解决方案 > 临时更改 pandas 的 set_option 以显示数据框

问题描述

我正在使用 Jupyter 笔记本并导入了许多DataFrames,其中一个包含很长的字符串。因此,我想暂时更改pandas' 显示选项而不影响全局设置。我尝试使用with

with pd.set_option('display.max_colwidth', 220): 
    df.head()

但它不起作用并返回AttributeError: __enter__.

我错过了什么吗?

标签: pythonpandas

解决方案


pandas.option_context

with pd.option_context('display.max_colwidth', 220):
  print(df.head())

考虑d1

d1 = pd.DataFrame(dict(A=['brown', 'blue', 'blue'*20]))

print(d1)

                                                   A
0                                              brown
1                                               blue
2  bluebluebluebluebluebluebluebluebluebluebluebl...

可以看到列宽不够长

with pd.option_context('display.max_colwidth', 220):
  print(d1.head())                                                           

    A
0                                                                             brown
1                                                                              blue
2  blueblueblueblueblueblueblueblueblueblueblueblueblueblueblueblueblueblueblueblue

显示 HTML

from IPython.display import display, HTML

with pd.option_context('display.max_colwidth', 220):
  display(HTML(d1.to_html()))

在此处输入图像描述


推荐阅读