Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从熊猫到html样式的表级格式_Python_Html_Css_Pandas - Fatal编程技术网

Python 从熊猫到html样式的表级格式

Python 从熊猫到html样式的表级格式,python,html,css,pandas,Python,Html,Css,Pandas,我正在生成一封HTML电子邮件,其中包含一个数据框中的表格。我正在使用pandas样式将CSS添加到结果表中,但无法使表的边框看起来正确。CSS不会应用于表,因此我的边框折叠标记被忽略,并且每个单元格周围都有单独的边框 我已经检查了生成的HTML,在css中有一个与表相关联的id标记。这适用于针对td标记的选择器,但不适用于表格标记。当我手动从HTML中删除这个id时,生成的输出是正常的。我的问题是如何在python中获得这种效果 我正在使用python 2.7.2和pandas 0.23.4

我正在生成一封HTML电子邮件,其中包含一个数据框中的表格。我正在使用pandas样式将CSS添加到结果表中,但无法使表的边框看起来正确。CSS不会应用于表,因此我的边框折叠标记被忽略,并且每个单元格周围都有单独的边框

我已经检查了生成的HTML,在css中有一个与表相关联的id标记。这适用于针对td标记的选择器,但不适用于表格标记。当我手动从HTML中删除这个id时,生成的输出是正常的。我的问题是如何在python中获得这种效果

我正在使用python 2.7.2和pandas 0.23.4

import pandas as pd
df = pd.DataFrame([[1,2,3],[4,-5,6]])
styles = [ {'selector': 'table',
           'props': [('border', '1px solid lightgrey'),
                     ('border-collapse', 'collapse')]},
          {'selector': 'tbody td',
           'props': [('border', '1px solid lightgrey'),
                     ('font-size', '11.5px'),
                     ('font-family', 'arial'),
                     ('text-align', 'center'),
                     ('width', '120')]}
          ]

html = df.style.set_table_styles(styles).render()
实际has
表{

<style  type="text/css" >
    #T_094a3270_141f_11e9_99b1_18a905bf8925 table {
    ... params
    }    #T_094a3270_141f_11e9_99b1_18a905bf8925 tbody td {
    ... params
    }</style>  
<table id="T_094a3270_141f_11e9_99b1_18a905bf8925" > 
... etc
<style  type="text/css" >
    table {
    ... params
    }    #T_094a3270_141f_11e9_99b1_18a905bf8925 tbody td {
    ... params
    }</style>  
<table id="T_094a3270_141f_11e9_99b1_18a905bf8925" > 
... etc

我很想知道是否有人对上述问题有答案,但我已经通过手动添加字符串解决了这个问题

<style  type="text/css" >
    table {
          border: 1px solid lightgrey;
          border-collapse: collapse;
</style>  

桌子{
边框:1px纯色浅灰色;
边界塌陷:塌陷;
创建后显示在html的前面

令人恼火的是,这在html电子邮件中没有任何效果,尽管在浏览器中看起来很好


感谢您让boarder在选择器th和td中折叠,而不是在表中折叠。它是有效的。

我认为,有一个小技巧可以设计表本身的样式。因为
pandas
将表的ID添加到前面,您可以使用它通过传递一个空的选择器(如

style=[{“选择器”:“,”道具“:[(“边框”,“1px实心浅灰色”)]]

似乎只有第二行输出的
html
给了您一个问题,而
#t094a3270u 11e999b118a905BF8925表{
应该是
表{
是否正确?是的,我认为以表格为目标的样式中不能有表格ID标记。可能解释器会搜索ID,然后将样式应用于它下面的标记,因此表格本身会丢失。