data = {'SYMBOL': ['AAAA','AAAA','AAAA','AAAA','AAAA','AAAA','AAAA'] ,
'EXPIRYDT': ['26-Oct-23','26-Oct-23','26-Oct-23','26-Oct-23','26-Oct-23','26-Oct-23','26-Oct-23'],
'STRIKE': [480, 500, 525, 425, 450, 480, 500],
'TYPE': ['CE', 'CE', 'CE', 'PE', 'PE', 'PE', 'PE'],
'CONTRACTS': [1, 31, 1, 0, 12, 2, 6],
'OPENINT': [4000, 25000, 1000, 1000, 64000, 2000, 5000],
'TIMESTAMP': ['4-Sep-23','4-Sep-23','4-Sep-23','4-Sep-23','4-Sep-23','4-Sep-23','4-Sep-23']}
df=pd.DataFrame(data)
result = df.groupby(['EXPIRYDT', 'TYPE'])
df['CE_CONT'] = result['CONTRACTS'].transform('sum')
df['PE_CONT'] = result['CONTRACTS'].transform('sum')
df['CE_OI'] = result['OPENINT'].transform('sum')
df['PE_OI'] = result['OPENINT'].transform('sum')
print(df)
but i am not getting desired output i need output as
SYMBOL EXPIRYDT STRIKE TYPE CONTRACTS OPENINT TIMESTAMP CE_CONT PE_CONT CE_OI PE_OI
AAAA 26-Oct-23 480 CE 1 40000 4-Sep-23 33 20 30000 72000
AAAA 26-Oct-23 500 CE 31 25000 4-Sep-23 33 20 30000 72000
AAAA 26-Oct-23 525 CE 1 1000 4-Sep-23 33 20 30000 72000
AAAA 26-Oct-23 425 PE 0 1000 4-Sep-23 33 20 30000 72000
AAAA 26-Oct-23 450 PE 12 64000 4-Sep-23 33 20 30000 72000
AAAA 26-Oct-23 480 PE 2 2000 4-Sep-23 33 20 30000 72000
AAAA 26-Oct-23 500 PE 6 5000 4-Sep-23 33 20 30000 72000
after groupby i want
- sum of OPENINT of TYPE CE TO CE_OI
- sum of OPENINT of TYPE PE TO PE_OI
- sum of CONTRACTS of TYPE CE to CE_CONT
- sum of CONTRACTS of TYPE PE to PE_CONT

