Python Pandas:添加两个数据框的缺失行并保留额外的列

Python Pandas: add missing row of two dataframe and keep the extra columns

我想添加缺失的行数据帧 df1 并保留额外的列信息

In [183]: df1
Out[183]:
           City       Country     Region
0       Chicago           US      N.America 
1  San Franciso           US      N.America 
2        Boston           US      N.America 
3        London           UK      Europe
4        Beijing          China   Asia  
5         Omaha           US      N.America


In [183]: df2
Out[183]:
           City          
0       Chicago            
1  San Franciso 
2        Sao Paulo       
3        Boston                 
4        London            
5        Beijing 
6        Tokyo             
7        Omaha           

合并后想要的结果是

           City       Country     Region
0       Chicago           US      N.America 
1  San Franciso           US      N.America 
2     Sao Paulo           nan     nan
3        Boston           US      N.America 
4        London           UK      Europe
5        Beijing          China   Asia 
6         Tokyo           nan     nan
7         Omaha           US      N.America

我正在尝试 pd.merge(df2, df1, on='City', how='outer') 但是 return 键错误。

尝试下面的代码,使用 pd.mergeleft_join,您想要的输出:

merged = pd.merge(df2,df1,how='left',on='City')
print(merged)
             City Country     Region
0         Chicago      US  N.America
1  San Fransicsco     NaN        NaN
2       Sao Paolo     NaN        NaN
3          Boston      US  N.America
4          London      UK     Europe
5         Beijing   China       Asia
6           Tokyo     NaN        NaN
7           Omaha      US  N.America

如果您想使用 outer 连接,您可以使用以下代码获得此结果:

merged_outer = pd.merge(df2, df1, on='City', how='outer')

print(merged_outer)

             City Country     Region
0         Chicago      US  N.America
1  San Fransicsco     NaN        NaN
2       Sao Paolo     NaN        NaN
3          Boston      US  N.America
4          London      UK     Europe
5         Beijing   China       Asia
6           Tokyo     NaN        NaN
7           Omaha      US  N.America
8    San Franciso      US  N.America

DF1 和 DF2 分别为:

df1
 
           City Country     Region
0       Chicago      US  N.America
1  San Franciso      US  N.America
2        Boston      US  N.America
3        London      UK     Europe
4       Beijing   China       Asia
5         Omaha      US  N.America


df2

             City
0         Chicago
1  San Fransicsco
2       Sao Paolo
3          Boston
4          London
5         Beijing
6           Tokyo
7           Omaha