熊猫to_html()截断字符串内容


81

我有一个DataFrame包含文本数据的Python Pandas对象。我的问题是,当我使用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进行后处理,我想避免这种情况:

有没有更简单的解决方案来解决这个问题?我从文档中找不到任何相关内容


2
您是如何通过iPython查看内容的?试试这个pd.set_option('display.max_colwidth', -1),然后打印html,您应该发现它显示了全文,这与实际数据的截断无关,只是显示设置
EdChum 2014年

@EdChum是的,的确,我在看HTML槽IPython,但在普通的python终端中也得到了相同的结果。但是可以,set_option可以解决该问题!在终端和IPython中。以前不知道这种可能性。
Timo 2014年

pandas试图保护您免受可能杀死较小的python环境的显示输出的影响,除了模糊的错误,我从未听说过它会截断数据
EdChum 2014年

Answers:


105

您看到的是大熊猫将输出截断只是出于显示目的。

默认max_colwidth值为50,这就是您所看到的。

您可以将此值设置为所需的值,也可以将其设置为-1来有效地将其关闭:

pd.set_option('display.max_colwidth', -1)

尽管我不建议这样做,但最好将其设置为可以在控制台或ipython中轻松显示的内容。

可在此处找到选项列表:http : //pandas.pydata.org/pandas-docs/stable/options.html


8
df.to_html()中的““ ...”计算结果为True。看起来好像pandas是在截断输出值,而不仅仅是显示。
克里斯·楚兹基

我有一个很好奇的案例,我在这个问题中进行了描述:stackoverflow.com/questions/51260756/…其中html表中的单元格值包含字典。字典虽然不大,但在其他表格中却显示得很好,但是这个特别长的字典却用点号缩写,我无法显示。我尝试了pd.set_option('display.max_rows',1000),没有运气。有什么建议,甚至可以回答我的问题吗?
user637338 '18

在0.24版中,这仍然是这样做的方法吗?
詹森·斯特林珀

@JasonStrimpel是的,我相信
EdChum

1
@Superdooperhero您不能,显示选项会影响所有列或行
EdChum

19

似乎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)

44
有一个更简单的解决方案如何设置临时选项:with pd.option_context('display.max_colwidth', -1): output_html = df.to_html()
hynekcer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.