如何摆脱将excel表中的大数字转换为指数的pandas?

时间:2016-07-31 23:08:26

标签: python pandas machine-learning data-analysis

在Excel工作表中,我有两列大数字。

但是当我用read_excel()读取excel文件并显示数据帧时,

这两列以科学格式打印,呈指数级。

如何摆脱这种格式?

谢谢

Pandas中的输出

enter image description here

1 个答案:

答案 0 :(得分:10)

科学记谱法的应用方式是通过熊猫来控制的。选项:

import pandas as pd
pd.set_option('display.precision',3)

pd.DataFrame({'x':[.001]})   

        x
0   0.001

pd.DataFrame({'x':[.0001]})

            x
0   1.000e-04

pd.set_option('display.precision',4)
pd.DataFrame({'x':[.0001]})

         x
0   0.0001

您可能会在pandas docs的Options and Settings部分看到有关如何控制pandas输出的更多信息。

修改

如果这仅仅是出于演示目的,您可以转换您的 数据到字符串,同时按列格式化它们:

df = pd.DataFrame({'Traded Value':[67867869890077.96,78973434444543.44],
                   'Deals':[789797, 789878]})
df

    Deals   Traded Value
0   789797  6.786787e+13
1   789878  7.897343e+13


df['Deals'] = df['Deals'].apply(lambda x: '{:d}'.format(x))
df['Traded Value'] = df['Traded Value'].apply(lambda x: '{:.2f}'.format(x))
df    

     Deals       Traded Value
0   789797  67867869890077.96
1   789878  78973434444543.44

另一种更直接的方法是将以下行放在代码的顶部,只会格式化浮点数:

pd.options.display.float_format = '{:.2f}'.format