Общепринято использовать булевское индексирование для такого рода задач. С помощью этого метода вы узнаете, где столбец a
равен 1
, а затем суммируют соответствующие строки столбца b
. Вы можете использовать loc
обрабатывать индексацию:
>>> df.loc[df['a'] == 1, 'b'].sum()
15
Альтернативный подход заключается в использовании groupby
разделить dataframe на части в соответствии со значением в столбце a
. Вы можете суммировать каждую часть и вытащить значение, что 1 добавляются до:
>>> df.groupby('a')['b'].sum()[1]
15
groupby
подхода гораздо медленнее, чем при использовании булевой индексации, но полезно, если вы хотите проверить суммы для других значений в столбце a
.
использование группы в пандах для выполнения этой задачи –