2
здесь мои два dataframesслияния мультииндекс dataframe с неравной длиной
index = pd.MultiIndex.from_product([['a','b'],[1,2]],names=['one','two'])
df = pd.DataFrame({'col':[10,20,30,40]}, index = index)
df
col
one two
a 1 10
2 20
b 1 30
2 40
index_1 = pd.MultiIndex.from_product([['a','b'],[1.,2],['abc','mno','xyz']], names = ['one','two','three'])
temp = pd.DataFrame({'col1':[1,2,3,4,5,6,7,8,9,10,11,12]}, index = index_1)
temp
col1
one two three
a 1.0 abc 1
mno 2
xyz 3
2.0 abc 4
mno 5
xyz 6
b 1.0 abc 7
mno 8
xyz 9
2.0 abc 10
mno 11
xyz 12
как я могу объединить их оба? Я попытался это
pd.merge(left = temp, right = df, left_on = temp.index.levels[0], right_on = df.index.levels[0])
, но это не работает
KeyError: "Index([u'a', u'b'], dtype='object', name=u'one') not in index"
если преобразовать индекс в столбцы через reset_index(), чем слияния работ. Однако я хочу добиться этого, сохранив структуру индекса.
мой желаемый результат:
Большое спасибо, это работает. Я долго болтал с pd.merge и pd.reset_index, но не поразил меня тем, что я могу использовать их таким образом. Можете ли вы предложить, как я могу улучшить свои навыки работы с данными временных рядов в пандах? –
@SirajS. лучший способ - попытаться ответить на эти вопросы в stackoverflow ... no joke! – piRSquared