2016-07-13 3 views
0

의 특정 레벨에 dataframe를 추가 할이 두 dataframes을 고려가 어떻게 다른 dataframe

df1 = pd.DataFrame(np.arange(16).reshape(4, 4), 
        pd.MultiIndex.from_product([['a', 'b'], ['A', 'B']]), 
        ['One', 'Two', 'Three', 'Four']) 

df2 = pd.DataFrame(np.arange(8).reshape(2, 4), 
        ['C', 'D'], 
        ['One', 'Two', 'Three', 'Four']) 

print df1 

    One Two Three Four 
a A 0 1  2  3 
    B 4 5  6  7 
b A 8 9  10 11 
    B 12 13  14 15 

print df2 

    One Two Three Four 
C 0 1  2  3 
D 4 5  6  7 

내가 df1.index의 첫 번째 수준은 'a'입니다 df1df2를 추가합니다.

 One Two Three Four 
a A 0 1  2  3 
    B 4 5  6  7 
    C 0 1  2  3 
    D 4 5  6  7 
b A 8 9  10 11 
    B 12 13  14 15 

답변

0

먼저 I 새로운 인덱스에 포함 된 인덱스 중 첫 번째 레벨에서 원하는 위치와 함께 pd.MultiIndexdf2의 인덱스를 재. 다음

df2.index = pd.MultiIndex.from_product([['a'], df2.index]) 

concat

pd.concat([df1, df2]).sort_index() 

    One Two Three Four 
a A 0 1  2  3 
    B 4 5  6  7 
    C 0 1  2  3 
    D 4 5  6  7 
b A 8 9  10 11 
    B 12 13  14 15