Pandas Groupby с несколькими фильтрами на две колонки - PullRequest
0 голосов
/ 10 апреля 2019
df = pd.DataFrame({'cost_center':['A', 'A', 'A', 'B', 'B','B','C', 'C', 'C', 'D', 'D','D'],
               'cost_type': ['payroll','depreciation', 'software','payroll','depreciation', 'software','payroll','depreciation', 'software','payroll','depreciation', 'software'],
               'the_amount': [0,11,11,11,11,11,11,11,11,0,11,11,]})

output
cost_center   cost_type      the_amount

A              payroll          0
A              depreciation    11
A              software        11
B              payroll         11
B              depreciation    11
B              software        11
C              payroll         11
C              depreciation    11
C              software        11
D              payroll         0
D              depreciation    11
D              software        11

Я хочу суммировать the_amount ТОЛЬКО для cost_centers, где cost_type для расчета заработной платы имеет the_amount = 0

Я пробовал такие вещи, как

df_cost_centers_without_payroll=df.groupby('Cost Center').filter(lambda x: x['cost_type'] == 'payroll'  & x['the_amount'] == 0 )

Я бы хотел увидеть что-то вроде ниже. Так как только у cost_centers 'A' и 'D' есть сумма начисления заработной платы, которая = 0, это только покажет A и D.

cost_center         amount
A                      22
D                      22
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...