加入 pandas 中的多重索引系列

Ger*_*nuk 6 python pandas

我有多个带有 MultiIndex 的系列,我想将它们合并到一个 DataFrame 中,该 DataFrame 将它们连接到公共索引名称(和广播值)上。设置就像

import pandas as pd
a=pd.Series([12,13,14,15], index=pd.MultiIndex.from_tuples([(1,1),(1,2),(2,1),(2,2)], names=["i", "j"]))
b=pd.Series([21,22], index=pd.MultiIndex.from_tuples([(1,),(2,)], names=["i"]))
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到结果

i  j  a  b
1  1  12 21 
1  2  13 21
2  1  14 22
2  2  15 22
Run Code Online (Sandbox Code Playgroud)

你能建议如何得到这个结果吗?理想情况下,这也应该适用于两个以上的系列。

ely*_*ase 8

这记录在这里

pd.merge(a.reset_index(), b.reset_index(), on='i')
Run Code Online (Sandbox Code Playgroud)

如果需要,您可以使用 重新设置索引set_index。或者:

pd.DataFrame(b).join(pd.DataFrame(a), rsuffix='a')
Run Code Online (Sandbox Code Playgroud)