【问题标题】:convert scientific notation to decimal pandas python将科学计数法转换为十进制 pandas python
【发布时间】:2016-08-17 01:24:41
【问题描述】:

可能这是一个老问题,我在下面找到了类似的问题,但我仍然可以在我的输出文件中看到科学记数法。

Suppressing scientific notation in pandas?

Pandas read scientific notation and change

Python Pandas Scientific Notation Iconsistent

我尝试将set_optiondf.apply(pd.to_numeric, args=('coerce',)) 等合并到我下面的代码中,但不起作用。

df = pd.read_csv(Input)  

dfNew = df[['co_A','co_B','co_C']]  
# I firstly select columns from df then would like to convert scientific notation to decimal type in my output file.

dfNew.to_csv(Output, index = False, sep = '\t')

我仍然可以在输出文件中看到科学记数法。有人可以帮忙吗?

co_A  co_B  co_C
167 0.0 59.6
168 0.0 60.6
191 8e-09   72.6
197 -4.7718e-06 12.3
197 0.0 92.4
198 0.0 39.5

【问题讨论】:

    标签: python-2.7 pandas


    【解决方案1】:

    在调用.to_csv()函数时可以使用float_format参数:

    In [207]: df
    Out[207]:
       co_A          co_B  co_C
    0   167  0.000000e+00  59.6
    1   168  0.000000e+00  60.6
    2   191  8.000000e-09  72.6
    3   197 -4.771800e-06  12.3
    4   197  0.000000e+00  92.4
    5   198  0.000000e+00  39.5
    
    In [208]: fn = r'D:\temp\.data\out.csv'
    
    In [209]: df.to_csv(fn, index=False, sep='\t', float_format='%.6f')
    

    out.csv:

    co_A    co_B    co_C
    167 0.000000    59.600000
    168 0.000000    60.600000
    191 0.000000    72.600000
    197 -0.000005   12.300000
    197 0.000000    92.400000
    198 0.000000    39.500000
    

    【讨论】:

      猜你喜欢
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-22
      相关资源
      最近更新 更多