代码之家  ›  专栏  ›  技术社区  ›  Nick

Julia用科学符号错误地导入CSV

  •  4
  • Nick  · 技术社区  · 6 年前

    我在用茱莉亚 CSV 包装 DataFrames 作为水槽。我的csv中的一些数字读错了。这些数字是用科学符号表示的。

    此行:

    -5.871153289887625082e-01,8.095032986136727615e-01,9.900000000000006573e-01,9.900000000000006573e-01,-9.866066418838319585e-01,-3.138907529596844714e+00,-5.129218106887371675e+00,-4.803915800699462224e+00
    

    结果:

    -0.587115   │ 0.809503  │ -0.854674 │ -0.854674 │ 0.858068  │ -3.13891  │ -5.12922 │ -4.80392 
    

    注意第3栏和第4栏。突然之间,他们是一个完全不同的数字。

    这里会发生什么事?

    1 回复  |  直到 5 年前
        1
  •  1
  •   Bogumił Kamiński    5 年前

    仅供参考。问题现在已解决:

    julia> s = """-5.871153289887625082e-01,8.095032986136727615e-01,9.900000000000006573e-01,9.900000000000006573e-01,-9.866066418838319585e-01,-3.138907529596844714e+00,-5.129218106887371675e+00,-4.803915800699462224e+00"""
    "-5.871153289887625082e-01,8.095032986136727615e-01,9.900000000000006573e-01,9.900000000000006573e-01,-9.866066418838319585e-01,-3.138907529596844714e+00,-5.129218106887371675e+00,-4.803915800699462224e+00"
    
    julia> CSV.read(IOBuffer(s), header=false)
    1×8 DataFrame
    │ Row │ Column1   │ Column2  │ Column3  │ Column4  │ Column5   │ Column6  │ Column7  │ Column8  │
    │     │ Float64⍰  │ Float64⍰ │ Float64⍰ │ Float64⍰ │ Float64⍰  │ Float64⍰ │ Float64⍰ │ Float64⍰ │
    ├─────┼───────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┤
    │ 1   │ -0.587115 │ 0.809503 │ 0.99     │ 0.99     │ -0.986607 │ -3.13891 │ -5.12922 │ -4.80392 │