将科学记数法转换为十进制 pandas python [英] convert scientific notation to decimal pandas python

查看:102
本文介绍了将科学记数法转换为十进制 pandas python的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Probably it is an old question, I found the similar questions below but I still can see the scientific notation in my output file.

在 Pandas 中抑制科学记数法?

熊猫阅读科学记数法和变化

Python Pandas 科学记数法图标

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

I have tried to incorporate set_option and df.apply(pd.to_numeric, args=('coerce',)) etc to my code below while do not work.

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')

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

Still I can see scientific notation in my output file. Anyone can help?

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

推荐答案

您可以在调用 .to_csv() 函数:

you can use float_format parameter when calling .to_csv() function:

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

这篇关于将科学记数法转换为十进制 pandas python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆