在混合类型 DF 列中将浮点数转换为字符串使用科学记数法
Converting Floats to String in Mixed Type DF Column Uses Scientific Notation
我有一个数据框,其中有一列正在以混合类型读入。
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
可以使用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
我有一个数据框,其中有一列正在以混合类型读入。
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
可以使用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