Advertisement
Guest User

Untitled

a guest
Aug 1st, 2016
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.13 KB | None | 0 0
  1. # Imports
  2. import functools as ft
  3. import pandas as pd
  4.  
  5. df1 = pd.DataFrame({'X': {0: 'a', 1: 'b', 2: 'z'},
  6.                     'B': {0: 0, 1: 4, 2: 3},
  7.                     'C': {0: 2, 1: 9, 2: 0}
  8.                   })
  9.  
  10. df2 = pd.DataFrame({'X': {0: 'a', 1: 'b', 2: 'z'},
  11.                    'B': {0: 0, 1: 8, 2: 6},
  12.                    'C': {0: 4, 1: 18, 2: 0}
  13.                   })
  14.                  
  15. df3 = pd.DataFrame({'X': {0: 'a', 1: 'b', 2: 'z'},
  16.                    'B': {0: 12, 1: 0, 2: 4},
  17.                    'C': {0: 3, 1: 9, 2: 2}
  18.                   })
  19.  
  20. dfs = [df1,df2,df3]
  21.  
  22. # Merge the DataFrames
  23. merged = ft.reduce(lambda left,right: pd.merge(left,right,on='X'), dfs).set_index('X')
  24.  
  25. first_index = []
  26. second_index = []
  27.  
  28. for i in range(len(dfs)):
  29.     f_val = "{}{}".format("F", i+1)
  30.     first_index.extend((f_val, f_val))
  31.     second_index.extend(("B", "C"))
  32.    
  33. # Create a MultiIndex
  34. arrays = [first_index, second_index]
  35. columns = pd.MultiIndex.from_arrays(arrays)
  36.  
  37. # Create your DataFrame    
  38. df = pd.DataFrame(data=merged.as_matrix(),
  39.                   columns=columns,
  40.                   index = dfs[0]['X'])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement