我使用dataframe将Pandas数据帧转换为HTML输出。to_html函数。当我将其保存到一个单独的HTML文件时,该文件显示截断的输出。

例如,在我的TEXT列中,

Df.head(1)将显示

这部电影是一部出色的作品。

而不是

这部电影在解构这一时期盛行的复杂社会情绪方面做出了出色的努力。

这种表现在大量Pandas数据框架的屏幕友好格式的情况下是很好的,但我需要一个HTML文件,将显示包含在数据框架中的完整表格数据,也就是说,将显示后一个文本元素,而不是前一个文本片段。

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


当前回答

pd.set_option('display.max_columns', None)  

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

其他回答

显示特定单元格的完整数据框架:

import pandas as pd
with pd.option_context('display.max_colwidth', None,
                       'display.max_columns', None,
                       'display.max_rows', None):
    display(df)

上面的方法可以扩展为更多的选项。

更新的助手函数从卡尔阿德勒:

def display_full(x):
    with pd.option_context('display.max_rows', None,
                           'display.max_columns', None,
                           'display.width', 2000,
                           'display.float_format', '{:20,.2f}'.format,
                           'display.max_colwidth', None):
        display(x)

更改所有单元格的显示选项:

pd.set_option('display.max_colwidth', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
display(df)

对于那些想在Dask这样做的人:

我在Dask中找不到类似的选项,但如果我只是在熊猫的同一笔记本中这样做,它也适用于Dask。

import pandas as pd
import dask.dataframe as dd
pd.set_option('display.max_colwidth', -1) # This will set the no truncate for Pandas as well as for Dask. I am not sure how it does for Dask though, but it works.

train_data = dd.read_csv('./data/train.csv')
train_data.head(5)

Jupyter Users

每当我只需要一个单元格,我使用这个:

with pd.option_context('display.max_colwidth', None):
  display(df)

设置显示。max_colwidth选项为None(或1.0版本之前的-1):

pd.set_option('display.max_colwidth', None)

set_option文档

例如,在IPython中,我们看到信息被截断为50个字符。任何超出的部分都被略去:

如果你设置了显示。Max_colwidth选项,信息将全部显示:

pd.set_option('display.max_columns', None)  

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