Python 为Dataframe.to_html()的单列着色
在将其标记为重复之前,我已经尝试了以下主题中的代码,但到目前为止没有一个对我有效: [] [] [] 我的代码生成了三个数据帧,如下所示:Python 为Dataframe.to_html()的单列着色,python,pandas,dataframe,Python,Pandas,Dataframe,在将其标记为重复之前,我已经尝试了以下主题中的代码,但到目前为止没有一个对我有效: [] [] [] 我的代码生成了三个数据帧,如下所示: RowName Orders Market StartTime StopTime Status good A 9 gold 10:00:00 10:09:45 .
RowName Orders Market StartTime StopTime
Status
good A 9 gold 10:00:00 10:09:45
.
.
.
bad B 60 silver 07:54:43 08:02:12
RowName Orders Market StartTime StopTime
Status
good E 19 plat. 10:00:00 10:09:45
.
.
bad F 54 mercury 07:54:43 08:02:12
RowName Orders Market StartTime StopTime
Status
great D 3 alum. 10:00:00 10:09:45
.
.
ok C 70 bronze 07:54:43 08:02:12
其中,状态列设置为每个帧的索引
对于每一帧,我想突出显示值为D42A2A(也称为红色)的StartTime列,而不管给定单元格中的值是什么
如何做到这一点
最近失败的尝试:
def列_样式列:
如果列名称==“开始时间”:
返回pd系列'bgcolor:d42a2a',列索引
def颜色数据:
颜色=‘红色’如果数据!=还有“黑色”
返回“颜色:%s”%color
frame.style.applymapcol_color,子集=['StartTime']
但这也失败了
注:
我在linux shell中使用VI
IE internet explorer正在调用整个脚本,因此脚本的输出是html
我正在使用BS beautifulsoup从几个站点中收集数据,并将结果聚合到一个页面上
{*在抓取初始网站并创建所需的网站(称为Page1)后,我尝试在同一脚本中抓取Page1,并通过.attrs方法添加html行,但这失败了,即Web服务器在运行期间超时}
让我们试试这个:
import pandas as pd
import numpy as np
np.random.seed(24)
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4), columns=list('BCDE'))],
axis=1)
df.iloc[0, 2] = np.nan
def highlight_column(s, col):
return ['background-color: #d42a2a' if s.name == col else '' for v in s.index]
df.style.apply(highlight_column, col = 'B')
输出:
让我们试试这个:
import pandas as pd
import numpy as np
np.random.seed(24)
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4), columns=list('BCDE'))],
axis=1)
df.iloc[0, 2] = np.nan
def highlight_column(s, col):
return ['background-color: #d42a2a' if s.name == col else '' for v in s.index]
df.style.apply(highlight_column, col = 'B')
输出:
如果有人使用BeautifulSoup解析网站,然后使用pandas创建您可能希望添加样式的数据框,您可以执行以下操作: 在使用之前,你已经;导入beautifulsoup,清理您的站点并创建数据帧 变量_name=beautifulsoupdataframe_name.to_html 列表=[] 列表[td_索引]['attribute_name']='attribute_value' 这会将所有表数据添加到列表中,您可以从该列表中选择任何元素并添加/更新标记属性
如果有更有效的方法请发表评论以帮助改进如果有人使用BeautifulSoup解析网站,然后使用pandas创建您可能需要添加样式的数据框,您可以执行以下操作: 在使用之前,你已经;导入beautifulsoup,清理您的站点并创建数据帧 变量_name=beautifulsoupdataframe_name.to_html 列表=[] 列表[td_索引]['attribute_name']='attribute_value' 这会将所有表数据添加到列表中,您可以从该列表中选择任何元素并添加/更新标记属性
如果是更有效的方法,请发表评论以帮助改进这是我看到但无法完全掌握的方法之一。您是否介意将其编辑为适用于上述数据帧,即重命名适当的变量必须将col='B'更改为col='StartTime'并应用于您的数据帧。明白了。尝试此方法后,背景仍为白色。不幸的是,YDF.head.to_dict的输出是什么?结果表明,您的def HIGHT_列col完全正确。唯一需要配置的就是通话。因此,调用该函数的方法应该是:df.style.applyhighlight\u column,col='B'.renderable\u styles='default'。谢谢这是我看到但不能完全理解的方式之一。您是否介意将其编辑为适用于上述数据帧,即重命名适当的变量必须将col='B'更改为col='StartTime'并应用于您的数据帧。明白了。尝试此方法后,背景仍为白色。不幸的是,YDF.head.to_dict的输出是什么?结果表明,您的def HIGHT_列col完全正确。唯一需要配置的就是通话。因此,调用该函数的方法应该是:df.style.applyhighlight\u column,col='B'.renderable\u styles='default'。谢谢