2015-10-09 230 views
0

我有一個小的數據幀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

任何想法?謝謝

回答

1

除以零會導致NaN值。您可以使用fillna(0)用零替換NaN:

tbl['WsMean'] = ((tbl.CatSum + tbl.UpCatSum)/(tbl.CatCount + tbl.UpCatCount)).fillna(0)