我有代码来生成pandas数据帧并以html格式发送电子邮件 我遇到的问题很难将数字的科学格式改为一般的样式
我已经尝试设置浮动格式,但它不起作用。
tools
输出:
pd.options.display.float_format = '{:20,.2f}'.format
预计会出现:
Col A Col B
1.00E+06 2.28E+06
3.00E+07 -2.54E+07
答案 0 :(得分:4)
我试过这个并且有效:
df = pd.DataFrame([[3.371e17,9.82173e15],[8e12,8e8]],columns=['A','B'])
df.to_html(float_format='{:20,.2f}'.format)
这一般不会改变df
的格式,只是html输出,即:
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>A</th>
<th>B</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>337,100,000,000,000,000.00</td>
<td>9,821,730,000,000,000.00</td>
</tr>
<tr>
<th>1</th>
<td>8,000,000,000,000.00</td>
<td>800,000,000.00</td>
</tr>
</tbody>
</table>
答案 1 :(得分:2)
我无法用你说的例子重现你的问题。它可能会改变代码中的数据帧格式。但我相信这段代码可以帮到你:
import pandas as pd
df = pd.DataFrame({"Col A":[1000420, 30030200],"Col B": [2281190, -25383100]})
for col in df:
df[col] = df[col].apply(lambda x: "%.f" % x)
通过这个你获得输出:
>>> df
Col A Col B
0 1000420 2281190
1 30030200 -25383100