【问题标题】:displaying Pandas DataFrame in HTML without the extra row在没有额外行的情况下以 HTML 显示 Pandas DataFrame
【发布时间】:2017-04-05 05:07:34
【问题描述】:

如果我使用DataFrame.set_index,我会得到这个结果:

import pandas as pd

df = pd.DataFrame([['foo',1,3.0],['bar',2,2.9],
                   ['baz',4,2.85],['quux',3,2.82]],
                 columns=['name','order','gpa'])
df.set_index('name')

注意不必要的行...我知道它这样做是因为它为列标题保留了左上角的单元格,但我不在乎它,如果我在表格中使用它会使我的表格看起来有些不专业演示文稿。

如果我不使用DataFrame.set_index,多余的行就会消失,但我会得到数字行索引,这是我不想要的:

如果我使用to_html(index=False),那么我可以解决这些问题,但第一列不是粗体:

import pandas as pd
from IPython.display import HTML

df = pd.DataFrame([['foo',1,3.0],['bar',2,2.9],
                   ['baz',4,2.85],['quux',3,2.82]],
                 columns=['name','order','gpa'])
HTML(df.to_html(index=False))

如果我想控制样式以使名称变为粗体,我想我可以通过HTML(df.style.do_something_here().render()) 使用新的Styler API,但我不知道如何实现index=False 功能。

黑客能做什么? (除了自己构建 HTML)

【问题讨论】:

    标签: python html pandas


    【解决方案1】:

    这些天熊猫实际上有一个关键字:

    df.to_html(index_names=False)
    

    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_html.html

    【讨论】:

      【解决方案2】:

      我在source for Styler 中四处寻找并弄明白了;如果您设置df.index.names = [None],那么这会抑制“额外”行(以及我并不真正关心的列标题):

      import pandas as pd
      
      df = pd.DataFrame([['foo',1,3.0],['bar',2,2.9],
                         ['baz',4,2.85],['quux',3,2.82]],
                       columns=['name','order','gpa'])
      df = df.set_index('name')
      df.index.names = [None]
      df
      

      【讨论】:

      • 不太确定这是做什么的。 ://
      猜你喜欢
      • 2017-08-06
      • 2019-11-26
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      相关资源
      最近更新 更多