【问题标题】:pandas.to_html() returning Nonepandas.to_html() 返回无
【发布时间】:2015-08-17 11:36:49
【问题描述】:

我正在尝试使用 formatters 参数将 html 属性添加到特定的单元格/文本。 我找到了一个完全符合我要求的answer。然而尝试它,结果返回无。 我正在尝试的示例:

import pandas as pd
from StringIO import StringIO

buf = StringIO()
significant = lambda x: '<span class="significant">%f</span>' % x if x<0.05 else str(x)
df = pd.DataFrame({'correlation':[0.5, 0.1,0.9], 'p_value':[0.1,0.8,0.01]})
print df.to_html(buf, formatters={'p_value': significant}, escape=False)

这个问题来自 2013 年。语法是否从一个版本更改为另一个版本? 我正在使用 python Python 2.7.9 pandas 0.16.0。

【问题讨论】:

  • Meybe 结果在buf?
  • 如上:to_x 方法返回 None,结果将在您作为第一个参数传递的任何文件中可见
  • 好吧,我不理解 stringIo 的使用。我在想格式化程序参数需要一个 stringIo 对象。我期待的结果很简单: df.to_html(formatters={'p_value': Significant}, escape=False)

标签: python pandas


【解决方案1】:

你给DataFrame.to_html函数一个StringIO缓冲区,这意味着结果被写入它,而不是作为字符串返回。

Pandas version 0.10 of DataFrame.to_html() function以来,这一直没有改变

要将输出作为返回的字符串,只需删除缓冲区:

import pandas as pd


df = pd.DataFrame(
    {'correlation':[0.5, 0.1,0.9],
     'p_value':[0.1,0.8,0.01]})
strformat = '<span class="significant">%f</span>'
significant = lambda x: strformat % x if x<0.05 else str(x)
formatters = {'p_value': significant}

print df.to_html(formatters=formatters, escape=False)

或者,如果你想使用一个缓冲区,这是如何打印它的值:

from StringIO import StringIO
import pandas as pd

df = pd.DataFrame(
    {'correlation':[0.5, 0.1,0.9],
     'p_value':[0.1,0.8,0.01]})
strformat = '<span class="significant">%f</span>'
significant = lambda x: strformat % x if x<0.05 else str(x)
formatters = {'p_value': significant}

buf = StringIO()
df.to_html(buf, formatters=formatters, escape=False)
print buf.getvalue()

【讨论】:

    【解决方案2】:

    df.to_html() 方法不返回输出,输出返回到 buf stringIo 对象,以后可以方便地编写。 我所期待的:

       import pandas as pd
       significant = lambda x: '<span class="significant">%f</span>' % x if x<0.05 else str(x)
       df = pd.DataFrame({'correlation':[0.5, 0.1,0.9], 'p_value':[0.1,0.8,0.01]})
       print df.to_html(formatters={'p_value': significant}, escape=False)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-18
      • 2018-08-11
      • 2018-05-31
      • 2011-01-03
      • 2014-10-20
      • 2021-09-12
      • 2018-12-26
      • 2020-02-14
      相关资源
      最近更新 更多