![](/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.