我有一个简单的pandas DataFrame,我需要将其转换为此类的html表
import pandas as pd
df = pd.DataFrame({
'Col1': ['20180817','20180816'],
'Col2': [3541, 2547],
'Col3': [-254, 147],
'Col4': ['-74.5%', '25.28%']
})
df_html = df.to_html(index=False, col_space=500)
,但还需要将所有负数的颜色更改为红色,例如
<td>-74.5%</td>
有没有简单的方法,该怎么做?非常感谢您的提示。
答案 0 :(得分:0)
在转换为html之前更新您的列:
df['Col4'] = df['Col4'].map(lambda x: f'<font color="red">{x}</font>' if x[0] == '-' else x)
df_html = df.to_html(index=False, col_space=500, escape=False)
结果:
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th style="min-width: 500;">Col1</th>
<th style="min-width: 500;">Col2</th>
<th style="min-width: 500;">Col3</th>
<th style="min-width: 500;">Col4</th>
</tr>
</thead>
<tbody>
<tr>
<td>20180817</td>
<td>3541</td>
<td>-254</td>
<td><font color="red">-74.5%</font></td>
</tr>
<tr>
<td>20180816</td>
<td>2547</td>
<td>147</td>
<td>25.28%</td>
</tr>
</tbody>
</table>