我有一个数据框,其中的列正在以混合类型读取。
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
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