我的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
答案 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...