Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- df Receiver Payer Amount
- 0 0045 xx04 300
- 1 5400 zz03 600
- 2 5400 0045 100
- 3 xx04 5400 400
- df1 ID In_0 In_1 Out_0 Out_1
- 0 0045 0 300 100 0
- 1 5400 100 600 0 400
- 2 zz03 0 0 600 0
- 3 xx04 400 0 300 0
- df.groupby(['Receiver', 'Payer'], as_index = False)['Amount'].sum()
- df_out = df.rename(columns={'Receiver':'IN','Payer':'OUT'})
- df_out['IN_TYPE'] = df_out['OUT'].str.contains(r'D').astype(int).astype(str)
- df_out['OUT_TYPE'] = df_out['IN'].str.contains(r'D').astype(int).astype(str)
- df_out = df_out.melt(['df','Amount','IN_TYPE','OUT_TYPE'], value_name='ID')
- df_out['Cols'] = df_out['variable']+'_'+np.where(df_out['variable']=='IN',df_out['IN_TYPE'],df_out['OUT_TYPE'])
- df_out = df_out.set_index(['ID','Cols'])['Amount'].unstack().fillna(0).reset_index()
- print(df_out)
- Cols ID IN_0 IN_1 OUT_0 OUT_1
- 0 0045 0.0 300.0 100.0 0.0
- 1 5400 100.0 600.0 0.0 400.0
- 2 xx04 400.0 0.0 300.0 0.0
- 3 zz03 0.0 0.0 600.0 0.0
Add Comment
Please, Sign In to add comment