如何在将pandas dataframe转换为HTML时显示完整(非截断)的dataframe信息?

2024-06-06 23:05:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用DataFrame.to_html函数将pandas数据帧转换为html输出。当我将它保存到一个单独的html文件中时,该文件显示被截断的输出。

例如,在我的文本列中

df.head(1)将显示

这部电影非常出色……

而不是

这部电影是解构这一时期盛行的复杂社会情绪的杰出作品。

对于屏幕友好格式的大型pandas数据帧,这种格式副本很好,但我需要一个html文件来显示数据帧中包含的完整表格数据,即显示后一个文本元素而不是前一个文本片段的内容。

如何才能在信息的html版本中显示文本列中每个元素的完整、未截断的文本数据?我可以想象html表必须显示长单元格才能显示完整的数据,但据我所知,只有列宽参数才能传递到DataFrame.to_html函数中。


Tags: 文件to数据函数文本元素dataframepandas
3条回答

display.max_colwidth选项设置为-1

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

^{} docs

例如,在iPython中,我们看到信息被截断为50个字符。任何多余的都被省略:

enter image description here

如果设置display.max_colwidth选项,则信息将完全显示:

enter image description here

pd.set_option('display.max_columns', None)设置显示的最大列数时,选项pd.set_option('display.max_colwidth', -1)设置每个字段的最大宽度。

为了达到我的目的,我编写了一个小的helper函数来完全打印大数据帧,而不影响其余代码,它还重新格式化浮点数并设置虚拟显示宽度。您可以在您的用例中采用它。

def print_full(x):
    pd.set_option('display.max_rows', len(x))
    pd.set_option('display.max_columns', None)
    pd.set_option('display.width', 2000)
    pd.set_option('display.float_format', '{:20,.2f}'.format)
    pd.set_option('display.max_colwidth', -1)
    print(x)
    pd.reset_option('display.max_rows')
    pd.reset_option('display.max_columns')
    pd.reset_option('display.width')
    pd.reset_option('display.float_format')
    pd.reset_option('display.max_colwidth')
pd.set_option('display.max_columns', None)  

id(第二个参数)可以完全显示列。

相关问题 更多 >