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

如何基于Pandas DataFrame匹配值为chromo数组赋值?

问题需求

现有Pandas DataFrame(data)与二维数组chromo,其中chromo[0]的元素对应DataFrame中Truck列的数值,chromo[1]初始全为0。需根据chromo[0]中的数值,在DataFrame中匹配对应的Door列数值,赋值给chromo[1]的对应位置。

输入示例

import pandas as pd

data = pd.DataFrame({
    'Truck':  [2,4,3,1,6,5],
    'Door':   [1,6,5,2,3,4],
    'Status': [1,1,0,1,1,0]
})

chromo = [
    [3,6,1,2,5,4],
    [0,0,0,0,0,0]]
# chromo[0] 对应 Truck 列数值
# chromo[1] 需填充对应 Door 列数值

解决方案

方法1:字典映射(高效简洁)

先构建Truck与Door的一一映射字典,再通过列表推导式批量赋值:

# 构建映射字典
truck_door_map = dict(zip(data['Truck'], data['Door']))
# 为chromo[1]赋值
chromo[1] = [truck_door_map[truck_id] for truck_id in chromo[0]]

方法2:Pandas Series映射

借助Pandas的map方法实现批量匹配:

truck_door_map = dict(zip(data['Truck'], data['Door']))
chromo[1] = pd.Series(chromo[0]).map(truck_door_map).tolist()

输出示例

执行代码后,chromo的最终结果:

chromo = [
    [3,6,1,2,5,4],
    [5,3,2,1,4,6]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:45:08