用熊猫格式£符号to_html

时间:2018-10-09 19:59:09

标签: python html pandas

我正在尝试使用ReadWriteMany格式化DataFrame的输出,以便以£作为前缀显示值。

to_html

返回:

Attempt with symbol

df['gross'].map('£{0:,.0f}'.format)

返回:

Attempt with hex

我要去哪里错了?

2 个答案:

答案 0 :(得分:0)

我不知道您在哪里出错,但是您可以尝试使用样式器:

df = pd.DataFrame(data=[[1,2], [3.2, 4.01]], columns=['gross', 'fish'])
s = df.style
s.format({'gross': "£{0:,.0f}".format})
s.render()

产生:

<style  type="text/css" ></style>  <table id="T_97cbc3ba_cc03_11e8_8f0c_8c85905d0081" > <thead>    <tr>         <th class="blank level0" ></th>         <th class="col_heading level0 col0" >gross</th>        <th class="col_heading level0 col1" >fish</th>     </tr></thead> <tbody>    <tr>         <th id="T_97cbc3ba_cc03_11e8_8f0c_8c85905d0081level0_row0" class="row_heading level0 row0" >0</th>         <td id="T_97cbc3ba_cc03_11e8_8f0c_8c85905d0081row0_col0" class="data row0 col0" >£1</td>         <td id="T_97cbc3ba_cc03_11e8_8f0c_8c85905d0081row0_col1" class="data row0 col1" >2</td>     </tr>    <tr>         <th id="T_97cbc3ba_cc03_11e8_8f0c_8c85905d0081level0_row1" class="row_heading level0 row1" >1</th>         <td id="T_97cbc3ba_cc03_11e8_8f0c_8c85905d0081row1_col0" class="data row1 col0" >£3</td>         <td id="T_97cbc3ba_cc03_11e8_8f0c_8c85905d0081row1_col1" class="data row1 col1" >4.01</td>     </tr></tbody> </table>

答案 1 :(得分:0)

如果您只想在HTML输出中添加£符号,则不要更改数据框本身-您将所有数字字段都转换为字符串,并失去了将其视为数字的能力。 to_html允许您指定如何使用参数formatters格式化内容。

一个例子:

import pandas as pd
data = dict( index = ['A','B','C','D'], values = [1,2,3,4])
df = pd.DataFrame(data)

format_pounds = dict( values = '£{}'.format) # add £ to column 'values'
html = df.to_html(formatters = format_pounds)