浅谈pandas dataframe对除数是零的处理
如下例
data2[‘营业成本率']=data2[‘营业成本本年累计']/data2[‘营业收入本年累计']*100
但有营业收入本年累计为0的情况,
则营业成本率为inf,即无穷大,而需要在表中体现为零,用如下方法填充:
data2['营业成本率']=data2['营业成本本年累计']/data2['营业收入本年累计']*100 data2['营业成本率'].replace([np.inf,-np.inf,"",np.nan],0,inplace=True)
当然,要引用到numpy库
需要导入库
importpandasaspd#导入panads fromopenpyxlimportload_workbook#读取时导入这个 fromopenpyxl.stylesimportFont,Alignment#设置单元格格式 fromopenpyxl.utilsimportget_column_letter,column_index_from_string #柱形BarChart3D柱BarChart3D fromopenpyxl.chartimportlabel,BarChart3D,BarChart,Reference importnumpyasnp
也可以采用函数和apply的方式
defget_benrate(series): shouru=series['营业收入本年累计'] chengben=series['营业成本本年累计'] ifshouru==0: return0 else: returnchengben/shouru*100 data2['营业成本率']=0 data2['营业成本率']=data2.apply(get_benrate,axis=1)
以前虽然用
data2['三项费用完成比例本月数']=0 data2.loc[data2['任务指标三项费用']!=0,'三项费用完成比例本月数']=data2['三项费用合计本月数']/data2['任务指标三项费用']*100
解决过除数为0的情况,但最上面的例子,却怎么也不认,一直提示错误,不知道是什么原因,也请大家给指正。
到此这篇关于浅谈pandasdataframe对除数是零的处理的文章就介绍到这了,更多相关pandasdataframe对除数是零内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!