回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个csv文件,其中包含6列多行。在我的情况下,理想情况下,c3中的值应与c5中的值匹配,c4与c6中的值匹配。如果不是较小的,则该单元格中的文本应以红色突出显示</p>
<pre><code>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
</code></pre>
<p>现在,我使用panda.read_csv读取此文件,并使用.to_html函数将其转换为html文件。但理想情况下,我也应该将值为1300的C4列着色为红色,因为它小于第3行中的C6值1330。类似地,颜色228和1339,因为对于第4行,C5和C6分别小于C3和C4</p>
<p>我试着做的基本上是首先将_csv读取到熊猫数据帧,然后使用df.style.apply(fnToColorRed,axis=1),在fnToColorRed内部我试着给它上色,但它不起作用</p>
<pre><code>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')
</code></pre>
<p>但上述措施似乎并不奏效。事实上,我在第行得到了以下错误:df_html=style.render(),该函数返回了错误的形状。ValueError:函数fnToColorRed返回了错误的形状。结果有形状:(5,)期望形状:(5,6)</p>
<p>请注意,如果创建的html文件满足上述代码中提到的条件<code>color= red if ( value['C2'] != value['C4'] or value['C3'] != value['C5'] ) else black</code>,则希望它的单元格颜色保留为红色</p>
<p>谢谢</p>