![](/img/trans.png)
[英]How can I merge two dataframes of dissimilar size and preserve their column order?
[英]How can I execute a full outer join on two DataFrames and still preserve the relative order of the elements?
让我们考虑两个dataframe
d1
和d2
,我想将它们合并为一个dataframe
d1
:
Id Country P_Type
102 Portugal Industries
163 Portugal Office
111 Portugal Clubs
164 Portugal cars
168 Finland Houses
d2
:
Id Country P_Type Sales
102 Portugal Industries 1651
163 Portugal Office 1125
111 Portugal Clubs 1752
164 Portugal cars 1259
129 Sweden Pubs 1345
105 Germany Industries 1451
103 Germany Office 1635
103 Germany Clubs 1520
103 Germany cars 1265
我厌倦了pd.merge
:
result=pd.merge(d2,d1,how='outer',on=["Id"])
我得到了结果:
Id Country P_Type Sales
102 Portugal Industries 1651
163 Portugal Office 1125
111 Portugal Clubs 1752
164 Portugal cars 1259
105 Germany Industries 1451
103 Germany Office 1635
129 Sweden Pubs 1345
103 Germany Clubs 1520
103 Germany cars 1265
168 Finland Houses Nan
我的预期是:
Id Country P_Type Sales
102 Portugal Industries 1651
163 Portugal Office 1125
111 Portugal Clubs 1752
164 Portugal cars 1259
168 Finland Houses Nan
105 Germany Industries 1451
129 Sweden Pubs 1345
103 Germany Office 1635
103 Germany Clubs 1520
103 Germany cars 1265
即使我尝试以相反的方式越过它,即d1
x d2
,id 编号 129 的相对位置也会改变。
只需交换d2
和d1
:
result = d1.merge(d2, how='outer')
print(result)
# Output
Id Country P_Type Sales
0 102 Portugal Industries 1651.0
1 163 Portugal Office 1125.0
2 111 Portugal Clubs 1752.0
3 164 Portugal cars 1259.0
4 168 Finland Houses NaN
5 105 Germany Industries 1451.0
6 103 Germany Office 1635.0
7 103 Germany Clubs 1520.0
8 103 Germany cars 1265.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.