【问题标题】:Replace Column in Data Frame from Lookup of other Data Frame从其他数据框的查找中替换数据框中的列
【发布时间】:2018-09-14 01:12:22
【问题描述】:

您好,我有两个数据框,其中一个包含:-

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

【问题讨论】:

  • 你能给我们输入和预期的输出吗?
  • 只接受一个答案。

标签: python pandas dataframe


【解决方案1】:

使用由Series创建的replaceset_index

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

【讨论】:

    【解决方案2】:

    如果您的 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 通常更有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      • 2014-02-06
      相关资源
      最近更新 更多