当前位置: 首页 > 面试题库 >

熊猫to_html使用.style选项还是自定义CSS?

万高洁
2023-03-14
问题内容

我遵循了熊猫的风格指南,效果很好。

如何通过Outlook使用to_html命令保留这些样式?文件似乎对我来说有点缺乏。

(df.style
   .format(percent)
   .applymap(color_negative_red, subset=['col1', 'col2'])
   .set_properties(**{'font-size': '9pt', 'font-family': 'Calibri'})
   .bar(subset=['col4', 'col5'], color='lightblue'))

import win32com.client as win32
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.Subject = subject_name
mail.HTMLbody = ('<html><body><p><body style="font-size:11pt; 
font-family:Calibri">Hello,</p> + '<p>Title of Data</p>' + df.to_html(
            index=False, classes=????????) '</body></html>')
mail.send

to_html文档显示,可以在to_html方法中放入一个类命令,但无法弄清楚。似乎我的数据框也没有我指定的样式。

如果我尝试:

 df = (df.style
       .format(percent)
       .applymap(color_negative_red, subset=['col1', 'col2'])
       .set_properties(**{'font-size': '9pt', 'font-family': 'Calibri'})
       .bar(subset=['col4', 'col5'], color='lightblue'))

然后df现在是一个Style对象,您不能使用to_html。

编辑-这是我目前正在修改表的工作。这行得通,但是我无法保留pandas提供的.style方法的出色功能。

email_paragraph = """
<body style= "font-size:11pt; font-family:Calibri; text-align:left; margin: 0px auto" >
"""

email_caption = """
<body style= "font-size:10pt; font-family:Century Gothic; text-align:center; margin: 0px auto" >
"""


email_style = '''<style type="text/css" media="screen" style="width:100%">
    table, th, td {border: 0px solid black;  background-color: #eee; padding: 10px;}
    th {background-color: #C6E2FF; color:black; font-family: Tahoma;font-size : 13; text-align: center;}
    td {background-color: #fff; padding: 10px; font-family: Calibri; font-size : 12; text-align: center;}
  </style>'''

问题答案:

一旦添加style到链式分配中,就可以在一个Styler对象上进行操作。该对象具有render将html作为字符串获取的方法。因此,在您的示例中,您可以执行以下操作:

html = (
    df.style
    .format(percent)
    .applymap(color_negative_red, subset=['col1', 'col2'])
    .set_properties(**{'font-size': '9pt', 'font-family': 'Calibri'})
    .bar(subset=['col4', 'col5'], color='lightblue')
    .render()
)

然后html在电子邮件中添加而不是df.to_html()



 类似资料:
  • 问题内容: 我有一个包含文本数据的Python Pandas 对象。我的问题是,当我使用函数时,它会截断输出中的字符串。 例如: 输出在处被截断 关于SO有一个相关问题,但是它使用占位符和搜索/替换功能来对HTML进行后处理,我想避免这种情况: 将Pandas数据框的全部内容写入HTML表 有没有更简单的解决方案来解决这个问题?我从文档中找不到任何相关内容。 问题答案: 您看到的是大熊猫将输出截断

  • 在Bootstrap 4中,我们已经加了一系列的全局选项,让你能够在项目中轻松定制所有的组件。这些选项通过Sass变量来处理。通过内置的Gruntfile,可以简单改变一个变量的值,并重新编译。 可用的变量 您可以在_variables.scss文件找到这些变量并自定义这些变量。 变量 值 Description $spacer 1rem (默认), 或者任何大于0的值 为间隔工具指定默认的间隔值

  • ...给出一个错误: .../site-packages/pandas/io/parsers . py:1130:dtype warning:列(4,5,7,16)具有混合类型。请在导入时指定dtype选项,或者设置low_memory=False。 为什么选项与相关,为什么可能有帮助?

  • 我有一个数据帧 是否有某种自定义筛选方法,可以让Python知道 说我要过滤,

  • 问题内容: 打电话时 我得到: /Users/josh/anaconda/envs/py27/lib/python2.7/site- packages/pandas/io/parsers.py:1130:DtypeWarning:列(4,5,7,16)具有混合类型。在导入时指定dtype选项,或将low_memory = False设置为false。 为什么选项与关联,为什么使它有助于解决此问题?

  • 问题内容: 我有python pandas dataframe,其中一列包含月份名称。 如何使用字典进行自定义排序,例如: 问题答案: 熊猫0.15引入了“分类系列”,该分类系列提供了一种更清晰的方法: 首先,将月份列设为分类,然后指定要使用的顺序。 现在,当您对月份列进行排序时,它将相对于该列表进行排序: 注意:如果值不在列表中,它将被转换为NaN。 对于那些有兴趣的人来说,是一个较旧的答案。