应用 pandas 样式后数字未四舍五入

Numbers got unrounded after applying pandas styles

我在应用 pandas 样式之前对数字进行了四舍五入,效果很好。然而,在应用样式之后,数字变得不四舍五入。没看懂。

示例数据

d = {'col1': ['a', 'b', 'c']*2, 'col2': [1.111, 1.112, 1.113] * 2}
df = pd.DataFrame(data=d)
df['col2'] = round(df['col2'], 2)

    col1 col2
0   a   1.11
1   b   1.11
2   c   1.11
3   a   1.11
4   b   1.11
5   c   1.11

通过指定索引将样式应用于整行

df.style.apply(lambda x: ['background: pink' 
                                  if (x.name == 3 )
                                  else '' for i in x], axis=1)

理想的输出应该显示四舍五入的数字和高亮索引 3

谢谢

样式器将“显示值与实际值区分开来”。

如果您想覆盖 显示 行为,您必须指定 format style:

(
    df.style.format({'col2': "{:.2f}"})
        .apply(lambda _: np.where(df.index == 3, 'background: pink', ''))
)