say have following multiindex empty dataframe:
>>> 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)]
and have following dataframe contains data:
>>> data=pd.dataframe(index=['a','b'], data=[11,22], columns=['var1']) >>> data.index.name='key1' >>> print data var1 key1 11 b 22
given common index named "key1" in both dataframes, think calculate variable equal var1 in empty dataframe doing following:
>>> df1['testvar']=data['var1'] >>> print df1 testvar key1 key2 1 nan 2 nan b 1 nan 2 nan
however, not appear work. there doing wrong here? instead resort following desired output
>>> df1.reset_index([1]).join(data).set_index('key2',append=true) var1 key1 key2 1 11 2 11 b 1 22 2 22
is there better way this?
how adding index name data dataframe , use join?
df1=pd.dataframe(data=[['a',1], ['a',2], ['b',1], ['b',2]], columns=['key1','key2']).set_index(['key1','key2']) data=pd.dataframe(index=['a','b'], data=[11,22], columns=['var1']) data.index.names =['key1'] print df1.join(data) var1 key1 key2 1 11 2 11 b 1 22 2 22
Comments
Post a Comment