官方document提供了使用to_html(justify='left/right')
设置单元格对齐的选项,它可以正常工作。但是,目前尚不清楚如何证明非标题行的合理性。
我使用黑客替换HTML部分
import pandas as pd
df = pd.DataFrame({'looooong_col':['1,234','234,567','3,456,789'],'short_col':[123,4,56]})
raw_html = df.to_html()
raw_html.replace('<tr>','<tr style="text-align: right;">')
所以修改后的html现在是
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>looooong_col</th>
<th>short_col</th>
</tr>
</thead>
<tbody>
<tr style="text-align: right;">
<th>0</th>
<td>1,234</td>
<td>123</td>
</tr>
<tr style="text-align: right;">
<th>1</th>
<td>234,567</td>
<td>4</td>
</tr>
<tr style="text-align: right;">
<th>2</th>
<td>3,456,789</td>
<td>56</td>
</tr>
</tbody>
</table>
并且它在http://htmledit.squarefree.com/中表示正常,但是当我将其写入html文件时,单元格仍然是左对齐的。
如何解决这个问题?
答案 0 :(得分:6)
您可以使用Styler功能。
http://pandas.pydata.org/pandas-docs/stable/style.html
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(6,4),columns=list('ABCD'))
s = df.style.set_properties(**{'text-align': 'right'})
s.render()
s.render()返回生成的CSS / HTML的字符串。请注意,生成的HTML不会是干净的,因为内部为每个单元格声明了一个单独的样式。
答案 1 :(得分:2)
您可能想尝试在CSS外部进行样式设置。
如果您使用的是MultiIndex,则将无法使用Styler。
例如,您可以在表格HTML之前添加以下内容:
<style>
table {text-align: center;}
table thead th {text-align: center;}
</style>
答案 2 :(得分:2)
要居中对齐列中的所有值,这对我有用
dict(selector="td", props=[("text-align", "center")])
答案 3 :(得分:-1)
这帮了我大忙
df.to_html(justify='left')