python - Python:基于多个数据框列的矩阵值
问题描述
我一直在解决一个问题,我有一个包含两列的数据框,并且我试图返回一个基于单独矩阵的值。
我尝试过的大多数事情只适用于单个列,并且涉及进入循环以获取更多信息——这需要一整天的时间来运行。
矩阵: 在此处输入图像描述
df: 在此处输入图像描述
我正在尝试制作一个数据框 col3,它将在第 1 行输出“1”,在第 2 行输出“8”。
解决方案
让我们声明您的 DataFrame 和您的矩阵(假设这是一个 Numpy 矩阵,因此由整数索引):
import pandas as pd
import numpy as np
df = pd.DataFrame({"col1": ['a', 'b'], "col2": ['x', 'y']})
M = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
一种选择是首先将字母转换为矩阵的索引,然后根据这些索引和 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)
推荐阅读
- javascript - 包含多个条件的Javascript查找失败
- swift - Swift:将类的 ObjectID 用于可散列协议会导致 set.contains 方法中的随机行为。代码有什么问题?
- javascript - jQuery .get() 不向服务器发送请求
- node.js - express node js如何在mongodb中将图像保存为二进制并显示在屏幕上
- reactjs - 在某些路线上隐藏布局
- c - 操作系统如何知道向以下程序发送信号?
- python - Pytest 坚持“收集...”
- android - 未解决的参考包 android studio
- html - 在移动视图中强制使用 Google AdSense 单元的边距
- python - 我可以将函数设置为默认参数吗?