在索引上合并两个 DataFrame,但是如果一个 DF 缺少索引,我希望它在其中一个 DF 缺少该索引时创建 Null (Nan) 值

Merge two DataFrame on the index, but if one DFs is missing an index I want it to create Null (Nan) values if one of the DFs is missing that index

我想在索引上合并两个 DataFrame。但是,如果其中一个 DataFrame 缺少索引值,我希望它为缺少该索引的任何 DataFrame 将空值 ('Nan') 放在新 DataFrame 的位置。

import pandas as pd

dict1 = {
    'Short Name': ['SOO','BS', 'SOC'],
    'File': ['r1','r2','r3'],
    'acc1': ['321','321','321']
}

dict2 = {
    'Short Name': ['S00','SOC'],
    'File': ['r1','r2'],
    'acc2': ['123','123']
}

df1 = pd.DataFrame(dict1)
df1.set_index('Short Name', inplace=True)
df1

df2 = pd.DataFrame(dict2)
df2.set_index('Short Name', inplace=True)
df2

new_df = pd.merge(df1,df2, on='Short Name')

我试图实现的输出是这样的:

             File_x  acc1  File_y  acc2
Short Name
       SOO    r1     321    r1      123
        BS    r2     321    Nan     Nan
       SOC    r3     321    r2      123

[dict1 的数据框][1] [dict2 的数据框][2] [1]: https://i.stack.imgur.com/u5g0y.png [2]: https://i.stack.imgur.com/AwenX.png

尝试join

out = df1.join(df2,lsuffix='_x',rsuffix='_y',how='left')
Out[934]: 
           File_x acc1 File_y acc2
Short Name                        
SOO            r1  321    NaN  NaN
BS             r2  321    NaN  NaN
SOC            r3  321     r2  123