我有带有国家/地区度量和值列的数据框:
Country| Measures| Value|
US |Sales |10000.000
US |Share % |0.10265
US |Price |15.82564
UK |Sales |10500.000
UK |Share % |0.30265
UK |Price |13.72564
我从数据库中加载数据帧,该数据帧的浮点数最多为6位, 我想在html的fomat下面
Country| Measures |Values
US |Sales |10000
US |Share % |10.2%
US |Price |15.83
UK |Sales |10500
UK |Share % |30.27%
UK |Price |13.72
使用df.to_html函数的'float_format'或'formatters'参数,我可以将所有数字分别转换为所需的格式或列特定的格式
下面我在列特定格式中使用的代码 我在行中没有行的份额和价格
df.to_html(index=False, formatters={ 'Share %': '{:,.1%}'.format,
'Price': '{:,.1f}'.format})
但是这里我的要求是基于行进行格式化
我想要
有什么办法可以做到这一点?
答案 0 :(得分:3)
fmap = dict(
Sales='{:0.0f}'.format,
Price='{:0.2f}'.format,
Share='{:0.2%}'.format
)
df.assign(Value=[fmap[m](v) for m, v in zip(df.Measures, df.Value)])
Country Measures Value
0 US Sales 10000
1 US Share 10.27%
2 US Price 15.83
3 UK Sales 10500
4 UK Share 30.26%
5 UK Price 13.73
备用字典规范
fmap = {
'Sales': '{:0.0f}'.format,
'Price': '{:0.2f}'.format,
'Share': '{:0.2%}'.format
}