我有一个包含文本数据的Python Pandas DataFrame
对象。我的问题是,当我使用to_html()
函数时,它会截断输出中的字符串。
例如:
import pandas
df = pandas.DataFrame({'text': ['Lorem ipsum dolor sit amet, consectetur adipiscing elit.']})
print (df.to_html())
输出在adapis...
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>text</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td> Lorem ipsum dolor sit amet, consectetur adipis...</td>
</tr>
</tbody>
</table>
SO上有一个相关的问题,但它使用占位符和搜索/替换功能对HTML进行后期处理,我想避免这样做:
这个问题有更简单的解决方案吗?我找不到与documentation相关的任何内容。
答案 0 :(得分:86)
您看到的是pandas截断输出仅用于显示目的。
默认max_colwidth
值为50,这就是您所看到的。
您可以将此值设置为您想要的任何值,也可以将其设置为-1,从而有效地将其关闭:
pd.set_option('display.max_colwidth', -1)
虽然我会建议不要这样做,但最好将它设置为可以在控制台或ipython中轻松显示的内容。
可在此处找到选项列表:http://pandas.pydata.org/pandas-docs/stable/options.html
答案 1 :(得分:14)
似乎pd.set_option('display.max_colwidth', -1)
确实是唯一的选择。为防止在控制台中显示数据框的方式发生不可逆转的全局更改,您可以将以前的设置保存在变量中,并在使用后立即将其恢复,如下所示:
old_width = pd.get_option('display.max_colwidth')
pd.set_option('display.max_colwidth', -1)
open('some_file.html', 'w').write(some_data.to_html())
pd.set_option('display.max_colwidth', old_width)