如何为含两列数组的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
相关产品推荐
相关产品推荐

