2015-10-09 2 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) 
Смежные вопросы