在索引上合并两个 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
我想在索引上合并两个 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