read_csv导入大数字

时间:2017-01-14 00:14:49

标签: python pandas

示例CSV文件包含

等内容
Afghanistan,AFG,8013233121.55065,8689883606.07776,8781610175.40574

当我用

导入时
GDP = pd.read_csv('world_bank.csv', header=4, usecols=fields) 

我用科学记数法得到数字。

Afghanistan,AFG,3.992331e+12,4.559041e+12

使用的转换器是什么?

1 个答案:

答案 0 :(得分:3)

这些数字是花车。您只是看到了显示的内容。

考虑以下

txt = """Afghanistan,AFG,8013233121.55065,8689883606.07776,8781610175.40574"""

GDP = pd.read_csv(StringIO(txt), header=None, converters={i:np.float128 for i in [2,3,4]})

print(GDP)

             0    1             2             3             4
0  Afghanistan  AFG  8.013233e+09  8.689884e+09  8.781610e+09

然而,仔细看看一个单元格

GDP.iloc[0, 2]

8013233121.5506496

您希望使用浮点格式printpd.set_option('display.float_format', '{:0.6f}'.format)或暂时执行

with pd.option_context('display.float_format', '{:0.6f}'.format):
    print(GDP)

             0    1                 2                 3                 4
0  Afghanistan  AFG 8013233121.550650 8689883606.077761 8781610175.405741