咨询:DataFrame两列相减时能否用round(2)?最优取整方法是什么
Pandas DataFrame列相减后保留两位小数的最佳方式
当然可以用round(2)来处理相减结果,下面是几种最常用的实现方式:
直接链式调用(最直观)
给相减的结果套上括号,确保先执行减法再取整(避免运算符优先级问题):DF['D'] = (DF['A'] - DF['B']).round(2)使用assign方法(适合链式操作)
如果习惯用链式语法处理DataFrame,不想直接修改原列,可以用assign:DF = DF.assign(D=lambda x: (x['A'] - x['B']).round(2))numpy.round替代(效果一致)
Pandas的round底层调用的是numpy的实现,直接用np.round也能得到相同结果:import numpy as np DF['D'] = np.round(DF['A'] - DF['B'], 2)
额外提示
如果只是需要显示时保留两位小数,不想修改数据本身的精度,可以用样式格式化:
display(DF.style.format({'D': '{:.2f}'}))
这种方式不会改变D列的实际数值,只是在展示时格式化输出。
内容的提问来源于stack exchange,提问作者TourEiffel
相关产品推荐
相关产品推荐

