0
說我有以下的多指標空數據框:計算列
>>> df1=pd.DataFrame(data=[['a',1], ['a',2], ['b',1], ['b',2]], columns=['key1','key2']).set_index(['key1','key2'])
>>> print df1
Empty DataFrame
Columns: []
Index: [(a, 1), (a, 2), (b, 1), (b, 2)]
而且我有以下數據框中包含我的數據:
>>> data=pd.DataFrame(index=['a','b'], data=[11,22], columns=['Var1'])
>>> data.index.name='key1'
>>> print data
Var1
key1
a 11
b 22
鑑於常見的指數都DataFrames被命名爲「KEY1」,我想,我可以計算一個變量等於VAR1在我的空數據框中執行以下操作:
>>> df1['TestVar']=data['Var1']
>>> print df1
TestVar
key1 key2
a 1 NaN
2 NaN
b 1 NaN
2 NaN
然而,這似乎並沒有工作。有什麼我在這裏做錯了嗎?相反,我訴諸以下獲得我想要的輸出
>>> df1.reset_index([1]).join(data).set_index('key2',append=True)
Var1
key1 key2
a 1 11
2 11
b 1 22
2 22
有沒有更好的方法來做到這一點?