熊猫结合了VLOOKUP和HLOOKUP或如何选择矩阵中的值

时间:2019-07-18 15:33:32

标签: python pandas

在我的previous task中,我需要根据阈值创建一个列表,此列表已解决。然后,我需要通过后续步骤来完成它,但是我认为创建一个单独的问题会有所帮助。 基本上,我需要将矩阵中的值带到DataFrame中以创建新列:

我有上一个任务的清单:

enter image description here

和矩阵:

enter image description here

我需要选择一个与行和列的交叉单元格中的值相对应的值。

enter image description here

最简单的方法是什么? 谢谢您的帮助

这是简单的试用数据框:

import pandas as pd

df = pd.DataFrame({'id':[1,2,3],
               'class':['class_1', 'class_5', 'class_3']})


matrix = pd.DataFrame({'id':[1,2,3],
               'class_1':[9,5,7],
               'class_2':[8,4,6],
               'class_3':[7,3,8],
               'class_4':[5,6,6],
               'class_5':[0,8,9]})

1 个答案:

答案 0 :(得分:2)

使用:

@Erfan建议:

df['new_col'] = matrix.set_index('id').lookup(df['id'], df['class'])

哪个比我下面的原始说法要好:

matrix = matrix.set_index('id')

df['new_col'] = matrix.lookup(df['id'], df['class'])

df

输出:

   id    class  new_col
0   1  class_1        9
1   2  class_5        8
2   3  class_3        8