我有以下称为df1的数据框:
name shortname location type
0 TexasA TXA Canada Main
1 TexasA TXA US Main
2 TexasA TXA ZZ US Sub-par
3 TexasA TXA ZZ 2 US Sub-par2
4 Oregon ORGN US Main
5 Ontario ONT2 Canada Sub-par
...........
然后我有一个称为df2的以下数据框:
name country
0 TexasA US
1 Oregon US
2 Ontario Canada
...........
我希望合并名称上的数据框,最后的数据框应保留以下数据框:
name shortname
0 TexasA TXA
1 Oregon ORGN
2 Ontario ONT2
...........
现在,当我使用以下命令进行合并时,
finaldf = pd.merge(df2,df1,on=['name','shortname'],how='out')
,我剩下以下内容:
name shortname location type
1 TexasA TXA US Main
2 TexasA TXA ZZ US Sub-par
3 TexasA TXA ZZ 2 US Sub-par2
4 Oregon ORGN US Main
6 Ontario ONT2 Canada Sub-par
我只想保留类型为Main的那些,如果不可用,我想保留所有可用的类型,该类型可以低于标准价,但也可以是其他,我该怎么做?
答案 0 :(得分:0)
IIUC,您想要从shortname
的{{1}}和df2
/ df1
和{ {1}}“主要”。如果name
中没有这样的条目,则其他任何类型都相同。您可以进行两次合并,然后使用combine_first
用第二个结果中的相应值填充第一个结果中的缺失值:
contry
结果:
location