如何从列对象类型中删除熊猫中的科学计数法

时间:2019-02-28 10:41:50

标签: python pandas

我的df包含以下要保存在csv文件中的数据:

    A      B
1   ABC    0.00772998456623635
2   XYZ    -6.745157813050465e-05
3   PQR    UDS
5   NA  
6   TES 
7   SEZ    0.051751390215281516

B列是对象类型,一些数字以科学计数法格式显示。 我想压制科学计数法。 我尝试了以下方法,但没有任何效果:(

np.set_printoptions(suppress=True)

df.to_csv('test.csv',sep='|',index=False, header=False,float_format='%f')

pd.set_option('display.float_format', '{:.60g}'.format)

任何人都可以帮助我如何将数字格式从 -6.745157813050465e-05 更改为 -0.0000674515781305046

1 个答案:

答案 0 :(得分:1)

有趣的问题。熊猫astype无法管理,如果您使用errors='ignore',它将无法更改。它可以与简单的自定义功能一起使用:

def to_float_custom(x):
    if not pd.isna(x):
        try:
            return float(x)
        except ValueError:
            pass
    return x

df.B = df.B.apply(to_float_custom)

然后将其设置为浮点数,并可以使用pd.set_option('display.float_format', '{:.60g}'.format)将其作为小数:

df

    A   B
1   ABC     0.007729984566236349982637499067550379550084471...
2   XYZ     -6.74515781305046527565466574216657136275898665...
3   PQR     UDS
5   NaN     None
6   TES     None
7   SEZ     0.051751390215281516116174742592193069867789745...