嗨,我有两个数据框,一个包含: -
<p>Country Code | Population </p>
和另一个包含: -
<p>Country Code | Country Name. </p>
我想在第一个数据框中执行替换,以便CountryCode = CountryName(如果适用)。重要的是要注意查找是否失败,即在第二个数据帧中没有CountryCode匹配我想保持不变。有什么想法可以做到这一点?
样品: -
<p>Country Code | Population </p>
<p>RSA | 100</p>
<p>POL | 50</p>
<p> Country Code | Country Name </p>
<p> RSA | South Africa </p>
DF1的预期输出
<p> Country Code | Population </p>
<p> South Africa | 100 </p>
<p> POL | 50 </p>
答案 0 :(得分:0)
如果您的2个数据框分别为df1
和df2
,则这是一种方式:
s = df2.set_index('Country Code')['Country Name']
df1['Country Code'] = df1['Country Code'].map(s).fillna(df1['Country Code'])
这也可以通过replace
实现,但map
+ fillna
通常效率更高。
答案 1 :(得分:0)
使用replace
创建的Series
{/ 3}}:
s = DF2.set_index('Country Code')['Country Name']
DF1['Country Code'] = DF1['Country Code'].replace(s)
print (DF1)
Country Code Population
0 South Africa 100
1 POL 50