round 函数保留 2 位小数,四舍六入,5 平分的问题

原始数据:
round 函数保留 2 位小数,四舍六入,5 平分的问题
代码:
import pandas as pd
df=pd.read_excel(r"C:\Users\Administrator\Desktop\aa.xlsx",dtype={“湿度”:“float”})
df[‘湿度’]=df[‘湿度’].map(lambda x:round(x,2))
print(df)

湿度列数据保留两位小数,运行结果:
round 函数保留 2 位小数,四舍六入,5 平分的问题

从结果我们能看出,红色框选的数据并不是我们想要的结果,这是由于 round 函数的设置四舍六入,五平分的结果造成。

解决办法:自定义函数进行处理
def round_value(x):
b = str(x).split(‘.’)[1]
if (int(b[2])==5)& (int(b[1])%2==0):
print(x)
c = round(x,2)+0.01
else:
c= round(x,2)
return c
df[‘湿度’]=df[‘湿度’].map(round_value)
print(df)
结果输出与预期一样。
round 函数保留 2 位小数,四舍六入,5 平分的问题