在我的previous task中,我需要根据阈值创建一个列表,此列表已解决。然后,我需要通过后续步骤来完成它,但是我认为创建一个单独的问题会有所帮助。 基本上,我需要将矩阵中的值带到DataFrame中以创建新列:
我有上一个任务的清单:
和矩阵:
我需要选择一个与行和列的交叉单元格中的值相对应的值。
最简单的方法是什么? 谢谢您的帮助
这是简单的试用数据框:
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]})
答案 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