My df
df_RFQ_by_Salesperson = df[
(df['state'].str.contains('Done'))
][['sales_person_name2',
'rfq_qty',
'rfq_qty_CAD_Equiv',
'state'
]].copy()
display(df_RFQ_by_Salesperson.head(3))
sales_person_name2 rfq_qty rfq_qty_CAD_Equiv state
14 AY 200000.0 2.568713e+05 Done
22 AY 1000000.0 1.284357e+06 Done
28 YJJ 25000000.0 4.420085e+07 Done
Я хотел бы groupby
на df_RFQ_by_Salesperson
, sum
на rfq_qty
, sum
на rfq_qty_CAD_Equiv
, но count
на state
тогдадобавить столбец в процентах на основе rfq_qty_CAD_Equiv
.Я вычислил столбцы суммы и процента, но я не уверен, как зациклить счетчик состояния?
df_RFQ_by_Salesperson = df_RFQ_by_Salesperson.rename(columns={'state':'Done Trades'}, level=0) # rename the column header in the groupby
df_RFQ_by_Salesperson = df_RFQ_by_Salesperson.groupby(['sales_person_name2'])['rfq_qty','rfq_qty_CAD_Equiv'].sum()
Total_Done_Volume = df_RFQ_by_Salesperson['rfq_qty_CAD_Equiv'].sum()
df_RFQ_by_Salesperson['Percentage'] = df_RFQ_by_Salesperson['rfq_qty_CAD_Equiv'].div(Total_Done_Volume)
display(df_RFQ_by_Salesperson.sort_values('Percentage',ascending=False))
sales_person_name2 rfq_qty rfq_qty_CAD_Equiv Percentage Count of State
MP 214400000.0 3.045802e+08 0.258089 ?
AC 228800000.0 2.648099e+08 0.224390 ?
YJJ 202500000.0 2.490527e+08 0.211038 ?
RW 129000000.0 1.693008e+08 0.143459 ?
AY 118366000.0 1.189635e+08 0.100805 ?
RL 78617000.0 7.342725e+07 0.062219 ?
Можно ли сделать подсчет в сочетании с суммой в одной группе?