我有一个数据框,其中有一列正在以混合类型读入。df = pd.DataFrame({'mix':['a',6,0.23423,False, 0.000023425]})我想将列转换为字符串,但是当我这样做时,任何长小数都会转换为科学记数法。如何以十进制表示法保留所有小数?df.astype(str) mix0 a1 62 0.234233 False4 2.3425e-11期望的输出: mix0 a1 62 0.234233 False4 0.000000000023425
1 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
您可以使用 numpy format_float_positional函数,如下所示。
import numpy as np
df = pd.DataFrame({'mix':['a',6,0.23423,False, 0.000000000023425]})
def custom_str(x):
if isinstance(x, float):
return np.format_float_positional(x)
return str(x)
df['mix'].apply(custom_str)
输出:
0 a
1 6
2 0.23423
3 False
4 0.000000000023425
添加回答
举报
0/150
提交
取消
