假设我有以下数据框:
A B C
0 n1 n2 n4
1 n2 n3 n5
2 n3 n1 n6
我一直在尝试:
Column A
以在 Column B
中查找匹配值Column B
中存在匹配项,我想获取 Column C
中当前索引的值并使用该值创建一个 Column D
。< /li>
A B C D
0 n1 n2 n4 n6
1 n2 n3 n5 n4
2 n3 n1 n6 n5
我已经看到很多使用匹配和索引的 excel 答案,但我确实找不到任何可以帮助我解决这个问题的答案。任何帮助将不胜感激。
答案 0 :(得分:4)
将 map
与 set_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.reindex
和 df.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