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

如何基于两个DataFrame按对应列映射,生成指定结构的字典列表

双DataFrame映射生成字典列表实现方案

实现思路

按列位置对齐两个DataFrame,逐列提取两表的非空值按顺序配对,最终将每对键值对封装为单键字典存入列表即可。

代码实现

import pandas as pd
import numpy as np

# 构造示例数据
df1 = pd.DataFrame({
    '1_A': [3.3, 3.3, np.nan, np.nan, np.nan],
    '2_A': [np.nan, np.nan, 4.3, np.nan, np.nan],
    '3_A': [np.nan, np.nan, np.nan, 3.2, 3.5]
})

df2 = pd.DataFrame({
    '1_B': [83, 87, np.nan, np.nan, np.nan],
    '2_B': [np.nan, np.nan, 64, np.nan, np.nan],
    '3_B': [np.nan, np.nan, np.nan, 66, 68]
})

res = []
# 按列位置遍历配对
for col_idx in range(len(df1.columns)):
    # 提取当前列的非空值
    s1 = df1.iloc[:, col_idx].dropna()
    s2 = df2.iloc[:, col_idx].dropna()
    # 逐行配对生成单键字典
    for key, val in zip(s2, s1):
        res.append({key: val})

print(res)

输出结果

[{83: 3.3}, {87: 3.3}, {64: 4.3}, {66: 3.2}, {68: 3.5}]

注意事项

该方案默认每对配对列的非空值数量一致、顺序对应,和示例给出的数据结构匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:36:00