因需要高精度处理,不能使用四舍六入五成双,下面提供一个模板,请自取
python中对padans的DataFrame做四舍五入+两位小数保留操作
数据帧:已知的df
模板:
import decimal
from decimal import Decimal
df=pd.DataFrame()
df1 = df.to_dict(orient='list', )
for k, v in df1.items(): # 遍历字典
for j, l in enumerate(v): # 遍历值list
a = Decimal(str(l)).quantize(Decimal('0.00'), rounding=decimal.ROUND_HALF_UP) # 处理精度(重点)
df1[k][j] = float(a) # 转换赋值str(a)
df1 = pd.DataFrame(df1)
print(df1)
#此时df1即是处理之后的副本
#遇到个问题,在ipython中decimal使用报错,不知为啥,重启ipython后又可以了