我有使用multindex的数据框:
A | B
1 0 a b
2 0 c d
1 e f
3 0 g h
1 i j
2 k l
我也有一个索引级别为0的系列
1 m
2 n
3 o
现在,我想将此系列的值添加到数据框
A | B | C
1 0 a b m
2 0 c d n
1 e f n
3 0 g h o
1 i j o
2 k l o
我应该使用哪种连接,合并,连接? 我不介意之后是否必须填写,但我想保持数据框的多索引不变。
非常感谢
答案 0 :(得分:1)
您需要命名索引级别,以便可以在合并中引用它们。还将您的Series
转换为DataFrame
:
df.index.names=['idx1', 'idx2']
df.merge(s.to_frame('C'), left_on='idx1', right_index=True)
A B C
idx1 idx2
1 0 a b m
2 0 c d n
1 e f n
3 0 g h o
1 i j o
2 k l o
还可以删除其中一个索引级别,然后加入Series
并重新添加索引级别:
df.reset_index(1).join(s.rename('C')).set_index('level_1', append=True)
A B C
level_1
1 0 a b m
2 0 c d n
1 e f n
3 0 g h o
1 i j o
2 k l o