You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Numpy数组索引匹配pandas DataFrame列值后对应数值相乘

匹配相乘实现方案

核心逻辑

利用numpy的整数数组索引特性,直接将DataFrame的v_index列作为下标批量提取numpy数组的对应系数,再与values列做向量化乘法即可完成匹配计算,全程无循环,执行效率极高。

完整可运行代码

import pandas as pd
import numpy as np

# 构造示例DataFrame
data = {'v_index': [0, 1, 2, 3, 4, 0, 4, 3], 'values': [5, 5, 10, 10, 20,20,10,10]}  
df = pd.DataFrame(data)
# 待匹配numpy数组
arr = np.array([1,3,5,7,9])

# 核心计算逻辑
df['values'] = df['values'] * arr[df['v_index']]

# 输出结果验证
print(df)

运行结果

执行代码后得到的结果与期望完全一致:

行号v_indexvalues
005
1115
2250
3370
44180
5020
6490
7370

注意事项

  • 需确保numpy数组的长度大于等于v_index列的最大值+1,避免出现索引越界报错
  • 即使v_index取值不连续,该方案依然有效,只要对应下标在numpy数组中存在即可

内容的提问来源于stack exchange,提问作者Yun Hyunsoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:54:04