Как создать запрос, который показывает дела для всех статусов?

У меня возникла проблема в моем проекте Django. У меня есть несколько случаев, таких как;

Case Type Status Sub Case Stage
Volleyball 2020 finished win
Basketball 2022 pending none
Basketball 2021 finished loss
Volleyball 2020 finished win

Я хочу создать запрос например, есть ли сколько случаев волейбол - 2020 - закончен - победа? или сколько случаев баскетбол - 2021 - закончен - поражение. Есть много случаев с различными атрибутами, я должен подсчитать их с помощью динамического запроса. Возможно, pandas может помочь мне в этом, но я не знаю. Любая идея может мне помочь.

каков ваш ожидаемый результат?

IIUC, это то, что вы ищете?

РЕЗУЛЬТАТ

df.groupby(['Case Type','Status','Sub Case']).value_counts().reset_index() 

ИЛИ

df.groupby(['Case Type','Status','Sub Case']).value_counts(df['Stage']).reset_index() 

ИЛИ

df.assign(cnt=1).groupby(['Case Type','Status','Sub Case','Stage'])['cnt'].sum().reset_index()  
    Case Type   Status  Sub Case    Stage   0
0   Basketball  2021    finished    loss    1
1   Basketball  2022    pending     none    1
2   Volleyball  2020    finished    win     2

Data

data= {'Case Type': ['Volleyball ',   'Basketball ',  'Basketball ',   'Volleyball '],
        'Status': [ 2020,  2022,  2021,  2020],
        'Sub Case': [ 'finished ',  'pending ',  'finished ',  'finished '],
        'Stage': [ 'win',  'none',  'loss',  'win']}
df=pd.DataFrame(data)
df
    Case Type   Status  Sub Case    Stage
0   Volleyball  2020    finished    win
1   Basketball  2022    pending     none
2   Basketball  2021    finished    loss
3   Volleyball  2020    finished    win
Вернуться на верх