Переиндексация на основе другого фрейма данных с мультииндексом - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть эти два кадра данных:

df1 = pd.DataFrame(data={
'scenario': ['0', '0', '0'],
'country': ['A', 'B', 'C'],
'state' : [  'A.1',   'B.1',   'C.1'],
2000 : [ 1,  1,   1]  ,
2005 : [ 2,  2,   2],
2010 : [ 5,  1,  3]
}).set_index(['scenario', 'country', 'state'])

df2 = pd.DataFrame(data={
'scenario': ['Low', 'Medium', 'High', 'Low', 'Medium', 'High', 'Low', 
'Medium', 'High'],
'country': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'state' : [  'A.1',   'A.1',   'A.1', 'B.1', 'B.1', 'B.1', 'C.1', 'C.1', 
'C.1'],
2000 : [ 5,  13,   1, 5,  13,   1, 5,  13,   1]  ,
2005 : [ 5,  11,   0, 5,  13,   1, 5,  13,   1],
2010 : [ 5,  15,   13, 5,  13,   1, 5,  13,   1],
}).set_index(['scenario', 'country', 'state'])

Я хочу приписать в сценарии столбца в df1 сценарии, сообщенные в df2, и получить df3

df3 = pd.DataFrame(data={
'scenario': ['Low', 'Medium', 'High', 'Low', 'Medium', 'High', 'Low', 
'Medium', 'High'],
'country': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'state' : [  'A.1',   'A.1',   'A.1', 'B.1', 'B.1', 'B.1', 'C.1', 'C.1', 
'C.1'],
2000 : [ 1,  1,  1, 1,  1,  1, 1,  1,  1]  ,
2005 : [ 2,  2,  2, 2,  2,  2, 2,  2,  2],
2010 : [ 5,  1,  3, 5,  1,  3, 5,  1,  3]
}).set_index(['scenario', 'country', 'state'])
...