1

マルチインデックス列と異なるインデックス サイズを持つ 2 つのデータフレームを一緒に追加しようとしています。最もエレガントなソリューションは何ですか。例は次のとおりです。

names = ['Level 0', 'Level 1']
cols1 = pd.MultiIndex.from_arrays([['A', 'A', 'B'],['A1', 'A2', 'B1']], names = names)
cols2 = pd.MultiIndex.from_arrays([['A', 'A', 'B'],['A1', 'A3', 'B1']], names = names)
df1 = pd.DataFrame(np.random.randn(1, 3), index=range(1), columns=cols1)
df2 = pd.DataFrame(np.random.randn(5, 3), index=range(5), columns=cols2)
print(df1)
print(df2)

Level 0         A                   B
Level 1        A1        A2        B1 
0       -0.116975 -0.391591  0.446029

Level 0         A                   B
Level 1        A1        A3        B1
0        1.179689  0.693096 -0.102621
1       -0.913441  0.187332  1.465217
2       -0.089724 -1.907706 -0.963699
3        0.203217 -1.233399  0.006726
4        0.218911 -0.027446  0.982764

ここで、欠落している列が追加され、df1 のインデックス 0 が df2 のすべてのインデックスに追加されるというロジックを使用して、df1 を df2 に追加しようとします。

したがって、上記の数値で期待することは次のとおりです。

  Level 0          A                                   B
  Level 1         A1           A2          A3         B1
  0         1.062714    -0.391591    0.693096   0.343408
  1        -1.030416    -0.391591    0.187332   1.911246 
  2        -0.206699    -0.391591   -1.907706   -0.51767
  3         0.086242    -0.391591   -1.233399   0.452755
  4         0.101936    -0.391591   -0.027446   1.428793

最も速度とメモリ効率の高いソリューションは何ですか? どんな助けでも感謝します。

4

1 に答える 1