Pandas Python:添加缺少的两个dataframe行,并保留额外的列
我想添加缺少的行dataframe df1,并保留额外的列信息Pandas Python:添加缺少的两个dataframe行,并保留额外的列,pandas,python-2.7,dataframe,Pandas,Python 2.7,Dataframe,我想添加缺少的行dataframe 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
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')
进行尝试,但返回keyerror。尝试下面的代码,使用pd.merge
,left\u 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
如果要使用外部
联接,可以使用以下代码获得此结果:
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
答案不必使用merge。只要
df2
中的城市不在df1
中,同时在df1中维护列数据,我认为解决方案pd.merge(df2,df1,on='City',how='outer')
在这里很好。什么是df1.columns
和df2.columns
?在City
列中都有吗?或者您需要pd.merge(df2,df1,on='City',how='left')
?两者都返回key或onCity
。它是城市
栏目的重要位置。第1列或第2列很重要?不确定是否理解,什么是print(df1.columns)
和print(df2.columns)
?