应用 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', ''))
)
我在应用 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', ''))
)