n次元のnumpy配列をdataframeに変換する際、dataframeの1列目には1次元目のインデックス、2列目には2次元目のインデックス、・・・n列目にはn次元目のインデックス、n+1列目に配列の要素、となるようなデータフレームの作成方法をご教示賜りたいと存じます。

今までは、以下のとおり、行数が配列の要素数、列数がn+1列の2次元のnumpy配列を用意しておき、forループをn回繰り返して2次元配列を作成し、dataframeに変換しておりましたが、さすがに10次元くらいになるとインデントも深すぎて飽きてきます。

mynp = np.zeros(m1*m2*m3*...*mn, n+1)

for l1 in range(m1):
    for l2 in range(m2):
        for l3 in range(m3):
             ……
                 for ln in range(mn):
                     mynp[l1*m2*m3*m4***mn,l2*m3*m4****mn,...,ln] = x[l1,l2,...,ln]

mypd = pd.DataFrame(mynp)