如何基于两个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
相关产品推荐
相关产品推荐

