【问题标题】:read_csv import large numbersread_csv 导入大数
【发布时间】:2017-01-14 00:14:48
【问题描述】:

一个示例 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

什么是正确的转换器?

【问题讨论】:

  • 它们是一回事。这不会影响您的计算,只会影响它们在控制台中的打印方式。

标签: python pandas


【解决方案1】:

这些数字是浮点数。您只是看到显示的内容。

考虑以下

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

print 使用你喜欢的浮点格式。 pd.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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 2021-10-05
    • 2020-04-28
    • 2013-10-27
    • 1970-01-01
    • 2015-02-16
    • 2022-01-12
    相关资源
    最近更新 更多