熊猫Styler。如何忽略呈现的HTML中的索引列

时间:2016-01-11 04:20:36

标签: python css pandas

我正在尝试使用在电子邮件中呈现样式器生成的字符串。似乎很难忽略数据框索引。

table_styles = [dict(selector="tbody tr th", props=[("display", "none")]),
st=df.style.set_table_styles(table_styles)
st.render()

我已经能够使用display none CSS设置,但它在基于CSS支持级别的不同设备上的工作方式不同。
有没有办法让索引有效负载消失?

4 个答案:

答案 0 :(得分:1)

我认为我的解决方案与您的解决方案相同,我面临同样的问题(在不同的设备上显示不同)。我只是在这里写下部分解决方案,以帮助那些正在寻找方法的人。

如果你html.render().split('\n'),你将能够获得与第一列和索引相关的类结构(如果你已经使用过resent_index)。

然后可以定义样式以使用display的CSS属性去掉那些列。

# define the style related to first column and index here
# first-element : when index =True, 
# second element: default index of the table generated by the Style
styles = [ 
  dict(selector = ".col0", props = [('display', 'none')]), 
  dict(selector = "th:first-child", props = [('display', 'none')])
 ]

 # set the table styles here
 table.set_table_styles(styles)

答案 1 :(得分:0)

我不确定是否存在相同的问题,但是我的问题是使用.style.render()将df保存到HTML文件中。我尝试使用CSS样式,但无法正常工作。我使用的解决方案非常简单,我没想到,我基本上运行.hide_index(),就像这样:

html = ts_volume_html.style.format({'total_ops': "{:.2f}", 'read_ops': '{:.2f}','read_data(bps)':'{:.2f}',
                        'read_latency(us)': "{:.2f}", 'write_ops': '{:.2f}','write_data(bps)':'{:.2f}',
                        'write_latency(us)': "{:.2f}", 'other_ops': '{:.2f}','other_latency(us)':'{:.2f}', \
                        .set_table_attributes('border="1" class="dataframe table table-hover table-bordered"')\
                        .set_precision(2).set_properties(**{'font-size': '10pt', 'font-family': 'Courier New'})\
                        .hide_index().background_gradient(cmap=cm).set_table_styles([{'selector': 'th', 'props': [('font-size', '10pt')]}]).render()

然后我将'html'str保存到一个html文件中。

答案 2 :(得分:0)

根据熊猫样式文档部分:Hiding the Index or Columns,使用if(fp == NULL) { perror ("fopen test.txt"); exit (EXIT_FAILURE); } 就足够了。在您的情况下,将是:

.hide_index()

答案 3 :(得分:0)

自0.23.0版以来,pandas附带了一个styler.hide_index()函数,将其与其他方法链接起来可以应用,因为返回的对象仍然是样式对象。

如果hide_index()不可用,请尝试更新您的熊猫库