Pandas applymap 函数不格式化数字

Pandas applymap function does not format numbers

我是 运行 代码实验室内的这个,将字符串格式化为 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)

结果returns正确。

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

这是我的处决。

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

如果是字符串,您可以尝试先将列转换为浮点数,然后应用舍入函数。

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