Python:基于多个数据帧列的矩阵值

Python:基于多个数据帧列的矩阵值,python,Python,我一直在研究一个问题,其中我有一个包含两列的数据框,我试图返回一个基于单独矩阵的值 我尝试过的大多数方法只适用于一个列,并且涉及到更多的循环——这需要一整天的时间来运行 矩阵: df: 我正在尝试创建一个数据帧col3,它将在第1行中输出“1”,在第2行中输出“8”。让我们声明您的数据帧和矩阵(假设这是一个Numpy矩阵,因此由整数索引): 一种方法是首先将字母转换为矩阵的索引,然后根据这些索引和Numpy索引填充目标列: df["num_col1"] = df["col1"].map(or

我一直在研究一个问题,其中我有一个包含两列的数据框,我试图返回一个基于单独矩阵的值

我尝试过的大多数方法只适用于一个列,并且涉及到更多的循环——这需要一整天的时间来运行

矩阵:

df:


我正在尝试创建一个数据帧col3,它将在第1行中输出“1”,在第2行中输出“8”。

让我们声明您的数据帧和矩阵(假设这是一个Numpy矩阵,因此由整数索引):

一种方法是首先将字母转换为矩阵的索引,然后根据这些索引和Numpy索引填充目标列:

df["num_col1"] = df["col1"].map(ord) - ord('a')
df["num_col2"] = df["col2"].map(ord) - ord('x')
df["result"] = M[df["num_col2"], df["num_col1"]]
df = df.drop(["num_col1", "num_col2"], axis = 1)

谢谢,这是一个相当迂回的解决问题的方法。很容易遵循这些步骤!
df["num_col1"] = df["col1"].map(ord) - ord('a')
df["num_col2"] = df["col2"].map(ord) - ord('x')
df["result"] = M[df["num_col2"], df["num_col1"]]
df = df.drop(["num_col1", "num_col2"], axis = 1)