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

如何为含两列数组的DataFrame生成数组字典新列?

实现方法:生成对应字典列的DataFrame处理方案

步骤1:构造示例DataFrame

先创建符合描述的测试数据:

import pandas as pd

# 构造3行测试数据,匹配你的列结构
data = {
    '列1': [[254.0, 254.0, 254.0, 254.0, 254.0]] * 3,
    '列2': [[3.0, 4.0, 7.0, 1.0, 5.0]] * 3
}
df = pd.DataFrame(data)

步骤2:生成目标字典列

提供两种简洁的实现方式:

方式一:lambda表达式+字典推导式

通过apply逐行处理,用字典推导式快速生成目标格式的字典:

# 生成列3,将列2的浮点数转为整数以匹配示例格式;不需要转换可去掉int()
df['列3'] = df.apply(lambda row: {i: [row['列1'][i], int(row['列2'][i])] for i in range(len(row['列1']))}, axis=1)

方式二:独立函数封装(可读性更强)

如果后续需要扩展逻辑,推荐用独立函数封装处理逻辑:

def build_mapping_dict(row):
    mapping = {}
    # 同时遍历索引和两列的对应元素
    for idx, (val_col1, val_col2) in enumerate(zip(row['列1'], row['列2'])):
        mapping[idx] = [val_col1, int(val_col2)]
    return mapping

df['列3'] = df.apply(build_mapping_dict, axis=1)

验证结果

执行后查看第一行的列3内容:

print(df['列3'].iloc[0])

输出完全符合需求:

{0: [254.0, 3], 1: [254.0, 4], 2: [254.0, 7], 3: [254.0, 1], 4: [254.0, 5]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:30:24