从其他数据框的查找替换数据框中的列

时间:2018-03-01 10:22:57

标签: python pandas dataframe

嗨,我有两个数据框,一个包含: -

<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>

2 个答案:

答案 0 :(得分:0)

如果您的2个数据框分别为df1df2,则这是一种方式:

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