Guest User

Untitled

a guest
Jul 17th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. df Receiver Payer Amount
  2. 0 0045 xx04 300
  3. 1 5400 zz03 600
  4. 2 5400 0045 100
  5. 3 xx04 5400 400
  6.  
  7. df1 ID In_0 In_1 Out_0 Out_1
  8. 0 0045 0 300 100 0
  9. 1 5400 100 600 0 400
  10. 2 zz03 0 0 600 0
  11. 3 xx04 400 0 300 0
  12.  
  13. df.groupby(['Receiver', 'Payer'], as_index = False)['Amount'].sum()
  14.  
  15. df_out = df.rename(columns={'Receiver':'IN','Payer':'OUT'})
  16.  
  17. df_out['IN_TYPE'] = df_out['OUT'].str.contains(r'D').astype(int).astype(str)
  18. df_out['OUT_TYPE'] = df_out['IN'].str.contains(r'D').astype(int).astype(str)
  19.  
  20. df_out = df_out.melt(['df','Amount','IN_TYPE','OUT_TYPE'], value_name='ID')
  21.  
  22. df_out['Cols'] = df_out['variable']+'_'+np.where(df_out['variable']=='IN',df_out['IN_TYPE'],df_out['OUT_TYPE'])
  23.  
  24. df_out = df_out.set_index(['ID','Cols'])['Amount'].unstack().fillna(0).reset_index()
  25. print(df_out)
  26.  
  27. Cols ID IN_0 IN_1 OUT_0 OUT_1
  28. 0 0045 0.0 300.0 100.0 0.0
  29. 1 5400 100.0 600.0 0.0 400.0
  30. 2 xx04 400.0 0.0 300.0 0.0
  31. 3 zz03 0.0 0.0 600.0 0.0
Add Comment
Please, Sign In to add comment