我有一个小数据框tbl:
CatAreaSqKm CatMean CatPctFull CatCount CatSum COMID
1861888 0.2439 0.0000 0.000000 0 0.000000
1862004 0.4050 27.9765 18.222222 82 2294.072964
1862014 0.0720 27.9765 28.750000 23 643.459490
UpCatAreaSqKm UpCatMean UpCatPctFull UpCatCount UpCatSum
COMID
1861888 105360.5349 29.177349 97.901832 114610993 3.344045e+09
1862004 105445.4517 29.174944 97.902537 114704191 3.346488e+09
1862014 105360.2127 29.177349 97.902093 114610948 3.344044e+09
我想做以下操作:
tbl['WsMean'] = ((tbl.CatSum + tbl.UpCatSum)/(tbl.CatCount + tbl.UpCatCount))
但是,如果我为CatCount + UpCatCount得到一个零,我将除以零,所以对于那个特定的行,我想设置' WsMean'零,但对于其他人,我希望计算上面的陈述计算的值。我怎样才能做到这一点?我只能想到一个声明:
tbl['WsMean'] = 0
但是这将覆盖表中的所有记录0。
有什么想法吗?感谢
答案 0 :(得分:1)
除以零会产生NaN值。您可以使用fillna(0)
用零替换NaN:
tbl['WsMean'] = ((tbl.CatSum + tbl.UpCatSum)/(tbl.CatCount + tbl.UpCatCount)).fillna(0)