将数据框追加到以前存在的MultiIndex数据框

时间:2020-01-04 00:27:18

标签: pandas

假设我有一个看起来像这样的MultiIndex DataFrame:

           C1   C2    C3
A1   B1
     B2
A2   B1
     B2

如何附加以下数据框:

      C1   C2    C3
B3
B4
B5
B6

在A1下方,以便最终产品看起来像这样:

           C1   C2    C3
A1   B1
     B2
     B3
     B4
     B5
     B6
A2   B1
     B2

1 个答案:

答案 0 :(得分:1)

在重新设置多索引之前,您将必须重置两个数据框的索引,然后将它们合并。

例如,我的索引名是cp_nameproducts,原始多索引数据帧是d,单索引数据帧是temp


#Setting the second index as a variable in the single-index dataframe
temp['cp_name'] = 'A'

#Resetting the indices
d_ = d.reset_index()
temp_ = temp.reset_index()

out = pd.concat([d_, temp_])


out.sort_values(['cp_name','products']).set_index(['cp_name','products'])

原始数据集:


                  le_id  run_seq  cp_id  tran_amnt currency  current
cp_name products                                                    
A       U           101        1    201        100      USD    201.0
B       U           102        1    202        200      USD      NaN
        V           103        1    202        672      INR      NaN
          le_id  run_seq  cp_id cp_name  tran_amnt currency current
products                                                           
X           104        3    205       E        437      SGD     NaN
V           102        3    203       C        783      INR     NaN

最终输出

                  cp_id currency current  le_id  run_seq  tran_amnt
cp_name products                                                   
A       U           201      USD     201    101        1        100
        V           203      INR     NaN    102        3        783
        X           205      SGD     NaN    104        3        437
B       U           202      USD     NaN    102        1        200
        V           202      INR     NaN    103        1        672