如果两个单独的列匹配,则 Pandas 在当前索引中返回单独的列值

时间:2021-02-26 03:51:47

标签: python pandas

假设我有以下数据框:

  A    B    C
0 n1   n2   n4
1 n2   n3   n5
2 n3   n1   n6

我一直在尝试:

  1. 遍历 Column A 以在 Column B 中查找匹配值
  2. 如果 Column B 中存在匹配项,我想获取 Column C 中当前索引的值并使用该值创建一个 Column D。< /li>
  3. 鉴于上面的示例数据框,下面是我正在尝试实现的解决方案。
  A    B    C    D
0 n1   n2   n4   n6
1 n2   n3   n5   n4
2 n3   n1   n6   n5 

我已经看到很多使用匹配和索引的 excel 答案,但我确实找不到任何可以帮助我解决这个问题的答案。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

mapset_index 一起使用:

df['D'] = df['A'].map(df.set_index('B')['C'])

输出:

    A   B   C   D
0  n1  n2  n4  n6
1  n2  n3  n5  n4
2  n3  n1  n6  n5

答案 1 :(得分:2)

另一种方法是使用 df.reindexdf.set_index

df['D'] = df.set_index('B').reindex(df['A'])['C'].values
df

    A   B   C   D
0  n1  n2  n4  n6
1  n2  n3  n5  n4
2  n3  n1  n6  n5
相关问题