我有一个数据框,其中包含三级深度(0,1,2)的多索引,我希望将此数据框与另一个数据框连接,该数据框由我原始数据帧的第2级索引。
在代码中,我想转:
pd.DataFrame(['a', 'b', 'c', 'd']).transpose().set_index([0, 1, 2])
和
pd.DataFrame(['c', 'e']).transpose().set_index(0)
进入
pd.DataFrame(['a', 'b', 'c', 'd', 'e']).transpose().set_index([0, 1, 2])
我看过this question,答案似乎回答了问题(在解决问题时)。
答案 0 :(得分:3)
join
自然会为您执行此操作。您可以重命名第二个数据帧的索引,并相应地重命名d1 = pd.DataFrame(['a', 'b', 'c', 'd']).transpose().set_index([0, 1, 2])
d2 = pd.DataFrame(['c', 'e']).transpose().set_index(0)
d1.join(d2.rename_axis(2))
3 1
0 1 2
a b c d e
。
d1 = pd.DataFrame([
[1, 2],
[3, 4],
[5, 6],
[7, 8]
], pd.MultiIndex.from_product([['A', 'B'], ['X', 'Y']], names=['One', 'Two']))
d2 = pd.DataFrame([
list('abcdefg')
], ['Y'], columns=list('ABCDEFG'))
d3 = pd.DataFrame([
list('hij')
], ['A'], columns=list('HIJ'))
d1.join(d2.rename_axis('Two')).join(d3.rename_axis('One'))
0 1 A B C D E F G H I J
One Two
A X 1 2 NaN NaN NaN NaN NaN NaN NaN h i j
Y 3 4 a b c d e f g h i j
B X 5 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Y 7 8 a b c d e f g NaN NaN NaN
更全面的例子
{{1}}