在从pandas dataframe转换为html时,如何在html中显示完整(非截断)的数据帧信息?

Amy*_*Amy 160 html python pandas

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

例如,在我的TEXT专栏中,

df.head(1) 将会呈现

这部电影很出色......

代替

这部电影是对解构这一时期普遍存在的复杂社会情绪的极好努力.

在大型熊猫数据帧的屏幕友好格式的情况下,这种表现很好,但我需要一个html文件,它将显示数据框中包含的完整表格数据,即显示后一个文本元素而不是以前的文字片段.

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

beh*_*uri 334

display.max_colwidth选项设置为-1:

pd.set_option('display.max_colwidth', -1)
Run Code Online (Sandbox Code Playgroud)

set_option 文档

例如,在iPython中,我们看到信息被截断为50个字符.任何超出的东西都是椭圆形的:

在此输入图像描述

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

在此输入图像描述

  • 答案是正确的,即不应将其设置为"无".否则,将得到`ValueError:Value必须有类型'<class'int'>''错误. (19认同)
  • 使用 API v3,当我将“display.max_colwidth”设置为“-1”时,我收到“FutureWarning”。将“-1”替换为“None”有效,并消除了警告。 (7认同)
  • 如果您希望这些显示选项仅应用一次,而不是永久应用,也可以这样使用上下文管理器:`with pd.option_context('display.max_colwidth',-1):display(df)` (5认同)
  • 根据文档,您应该将其设置为"无"以表示无限制. (2认同)
  • “ max_columns”答案对我有用,它使用“ None”作为“ set_option”的第二个参数。 (2认同)

小智 87

pd.set_option('display.max_columns', None)  
Run Code Online (Sandbox Code Playgroud)

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

  • 这对我有用,而不是其他答案。我正在使用Python 3.6 (3认同)
  • 这应该是公认的答案。当前带有选项`max_colwidth` 的accept 答案可以解决由于字段值太长而导致的截断问题。但是,我认为大多数人的截断问题实际上是列太多了。所以,这个`max_columns` 应该是公认的。 (2认同)

Kar*_*ler 57

虽然pd.set_option('display.max_columns', None)套所示的最大列数,选项pd.set_option('display.max_colwidth', -1)设置每个单个场的最大宽度.

为了我的目的,我写了一个小辅助函数来完全打印巨大的数据帧而不影响其余代码,它还重新格式化浮点数并设置虚拟显示宽度.您可以将其用于您的用例.

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')
Run Code Online (Sandbox Code Playgroud)

  • 这是此页面上最有用的答案 (8认同)

iam*_*mbo 27

Jupyter 用户

每当我只需要一个单元格时,我就使用它:

with pd.option_context('display.max_colwidth', None):
  display(df)
Run Code Online (Sandbox Code Playgroud)

  • 对于多个属性: `with pd.option_context('display.max_colwidth', None, 'display.max_rows', None):` `display(df)` (5认同)
  • 这是最常见的用例和最简洁的数据表示方式。否则,到处启用它会很混乱 (2认同)

Ben*_*ert 12

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

import pandas as pd
with pd.option_context('display.max_colwidth', None,
                       'display.max_columns', None,
                       'display.max_rows', None):
    display(df)
Run Code Online (Sandbox Code Playgroud)

上面的方法可以通过更多选项进行扩展。

Karl Adler 更新了辅助函数:

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)
Run Code Online (Sandbox Code Playgroud)

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

pd.set_option('display.max_colwidth', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
display(df)
Run Code Online (Sandbox Code Playgroud)


joe*_*lom 10

查看 Pandas 数据框中单元格的完整内容的另一种方法是使用 IPython 的显示函数:

from IPython.display import HTML

HTML(df.to_html())
Run Code Online (Sandbox Code Playgroud)


Pra*_*hat 5

对于那些希望在 Dask 中执行此操作的人:

我在 Dask 中找不到类似的选项,但如果我只是在 Pandas 的同一个笔记本中执行此操作,它也适用于 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)
Run Code Online (Sandbox Code Playgroud)


Pat*_*Old 5

以下代码导致以下错误:

pd.set_option('display.max_colwidth', -1)
Run Code Online (Sandbox Code Playgroud)

FutureWarning:在 1.0 版本中不推荐传递负整数,并且在未来版本中将不支持。相反,使用 None 来不限制列宽。

相反,使用:

pd.set_option('display.max_colwidth', None)
Run Code Online (Sandbox Code Playgroud)

这完成了任务并符合1.0版之后的Pandas版本。


bit*_*ang 5

也试试这个:

pd.set_option("max_columns", None) # show all cols
pd.set_option('max_colwidth', None) # show full width of showing cols
pd.set_option("expand_frame_repr", False) # print cols side by side as it's supposed to be
Run Code Online (Sandbox Code Playgroud)