按列名查找

时间:2018-10-24 11:01:58

标签: pandas lookup

请问如何使用一列(X)使用另一数据框(df_2)的列标题查找值?

例如:

df_1 = pd.DataFrame({'X' : [ 1,  2,  1,  1,  1,  2,  1,  2,  2,  1]})

df_2 = pd.DataFrame({'1' : ['a','b','c','d','e','f','g','h','i','j'],
                     '2' : ['b','c','d','e','f','g','h','i','j','a']})

我想要的结果是:

                             a   c   c   d   e   g   g   i   j   j

我尝试过:

for index, row in df_1.iterrows():
    df_1['Y'] = df_2[df_1['X'][index]]

但是我得到了

KeyError: 1

1 个答案:

答案 0 :(得分:1)

lookup与强制转换列X一起使用,以感谢@Zero:

a = df_2.lookup(df_2.index, df_1.X.astype(str))
print (a)
['a' 'c' 'c' 'd' 'e' 'g' 'g' 'i' 'j' 'j']