使用科学计数法将混合类型DF列中的浮点数转换为字符串

问题描述 投票:0回答:1

我有一个数据框,其中的列正在以混合类型读取。

df = pd.DataFrame({'mix':['a',6,0.23423,False, 0.000023425]})

我想将列转换为字符串,但是当我这样做时,任何长十进制都会转换为科学计数法。如何将所有小数保持为十进制表示法?

df.astype(str)
    mix
0   a
1   6
2   0.23423
3   False
4   2.3425e-11

所需的输出:

    mix
0   a
1   6
2   0.23423
3   False
4   0.000000000023425
python pandas scientific-notation mixed-type
1个回答
2
投票
您可以如下使用numpy format_float_positional函数。

import numpy as np df = pd.DataFrame({'mix':['a',6,0.23423,False, 0.000000000023425]}) def convert_to_float_rep(x): if isinstance(x, float): return np.format_float_positional(x) return str(x) df['mix'].apply(convert_to_float_rep)

输出:

0 a 1 6 2 0.23423 3 False 4 0.000000000023425

© www.soinside.com 2019 - 2024. All rights reserved.