将熊猫float64投射为具有特定格式的字符串

时间:2018-12-23 06:42:22

标签: python pandas

我在一个熊猫专栏中的人数很少。例如:

0      6.560000e+02
1      6.730000e+02
2      6.240000e+02
3      1.325000e+03
4      1.984500e+07

不幸的是,当我将其强制转换为字符串时,它给了我不可用的值,例如:

 df.astype('str').tolist()
['8.494e-07', ]

当转换为字符串时,是否有一种方法可以返回项目的实际值,例如:

'0.0000008494'

1 个答案:

答案 0 :(得分:3)

给予

# s = df[c]
s

0    6.560000e+02
1    6.730000e+02
2    6.240000e+02
3    1.325000e+03
4    8.494000e-07
Name: 1, dtype: float64

您可以通过str.format呼叫apply

s.apply('{:.10f}'.format)

0     656.0000000000
1     673.0000000000
2     624.0000000000
3    1325.0000000000
4       0.0000008494
Name: 1, dtype: object

s.apply('{:.10f}'.format).tolist()
# ['656.0000000000', '673.0000000000', '624.0000000000', 
#  '1325.0000000000', '0.0000008494']

或者通过列表理解。

['{:f}'.format(x) for x in s]
# ['656.000000', '673.000000', '624.000000', '1325.000000', '0.000001']

请注意,如果您未指定小数精度,则将最后一个值四舍五入。