熊猫applymap函数不格式化数字

时间:2019-09-20 23:39:30

标签: pandas format-string

我正在代码实验室内运行此程序,以将字符串格式设置为2个小数点。但是,它不起作用。请问出什么事了?我在Colab。

当我发出以下消息时:

format = lambda x: '%.2f' % x
frame.applymap(format)  # applies to every single entry

我知道

            b          d            e
Utah    0.950857    -0.472254   -0.109456
Ohio    -0.738897   0.218620    -0.982334
Texas   0.400049    0.412557    -0.262711
Oregon  1.130821    0.236745    1.921072

但是,当我发出

frame['e'].map(format)

它返回正确的结果。

Utah       0.27
Ohio       1.61
Texas      0.26
Oregon    -0.74
Name: e, dtype: object

这是我的死刑。 link

1 个答案:

答案 0 :(得分:1)

它们是否像您指示的那样是字符串?如果没有,您可以始终在frame.round(2) df上使用pandas

如果是字符串,则可以先尝试将列转换为float,然后再应用round函数。

for col in frame.columns:
    frame[col] = frame[col].astype(float)
frame = frame.round(2)