gpt4 book ai didi

python - 尝试为数据框单元格着色然后将其转储为 html 并尝试保留单元格样式时出现形状错误

转载 作者:行者123 更新时间:2023-12-04 15:00:57 26 4
gpt4 key购买 nike

我有一个 csv 文件,其中包含 6 列多行。在我的例子中,c3 的理想值应该与 c5 的值匹配,c4 与 c6 的值匹配。如果不是较小的,则该单元格中的文本应以红色突出显示。

C1,C2,C3,C4,C5,C6
a,b,21,200,21,200
c,d,1050,1900,1050,1900
k,l,250,1300,250,1330
j,m,230,1400,228,1339
s,t,210,1900,220,1900

现在我使用 panda.read_csv 读取此文件并使用 .to_html 函数转换为 html 文件。但理想情况下,我还应该将值为 1300 的 C4 列着色为红色,因为它小于第 3 行中的 C6 值 1330。类似地,C5 和 C6 的颜色 228 和 1339 分别小于第 4 行的 C3 和 C4。

我尝试做的基本上是首先将 read_csv 读取到 pandas 数据帧,然后使用 df.style.apply(fnToColorRed,axis=1) 并在 fnToColorRed 中尝试为其着色,但它不起作用。

def fnToColorRed(value):
color= red if ( value['C2'] != value['C4'] or value['C3'] != value['C5'] ) else black
return 'color %s ' %color

csv_file_df=pd.read_csv("my.csv")
style=csv_file_df.style.apply(fnToColorRed,axis=1)
df_html=style.render()
df_html.to_html('my.html')

但是上面好像不行。事实上,我在线上遇到以下错误:df_html=style.render() 函数返回了错误的形状。 ValueError:函数 fnToColorRed 返回了错误的形状。结果具有形状:(5,) 预期形状:(5,6)。

请注意,如果创建的 html 文件满足条件 color= red if ( value['C2'] != value['C4'] or value[' C3'] != value['C5'] ) else black 如上面的代码所述。

谢谢

最佳答案

您可以通过自定义函数创建样式 DataFrame,比较列并在 numpy.where 中设置它们首先传递给Styler.apply , 最后写入文件使用 file.write 函数:

def fnToColorRed(x):
c1 = 'color: red'
c2 = 'color: black'

# condition
m = x[['C3','C4']].to_numpy() != x[['C5','C6']].to_numpy()
#print (m)
#empty DataFrame of styles
df1 = pd.DataFrame('', index=x.index, columns=x.columns)
#set new columns by condition
df1[['C3','C4']] = np.where(m, c1, c2)
df1[['C5','C6']] = np.where(m, c1, c2)
return df1

然后可以指定一些 css:

css = [
{
'props': [
('border-collapse', 'collapse')]
},
{
'selector': 'th',
'props': [
('border-color', 'black'),
('border-style ', 'solid'),
('border-width','1px')]
},
{
'selector': 'td',
'props': [
('border-color', 'black'),
('border-style ', 'solid'),
('border-width','1px')]
}]

style=df.style.apply(fnToColorRed, axis=None).set_table_styles(css)

with open("my.html", "w") as file:
file.write(style.render())

关于python - 尝试为数据框单元格着色然后将其转储为 html 并尝试保留单元格样式时出现形状错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66949798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com