Python pandas基于两个DataFrame生成对应年龄d值的同结构新表
Python pandas 多列年龄匹配映射实现方案
- 核心逻辑:先将age与d的对应关系转换为字典映射表,再对年龄DataFrame做全表值替换,全程保留原DataFrame的行列结构、索引、列名不变。
代码实现示例
import pandas as pd # 1. 构建年龄到d的映射字典 # 假设你的年龄DataFrame名为df_age,映射关系DataFrame名为df_d_map age_map = df_d_map.set_index('age')['d'].to_dict() # 2. 全表替换生成目标DataFrame df_result = df_age.replace(age_map)
备选实现(支持自定义未匹配默认值)
如果存在部分年龄未在映射表中覆盖的情况,可以用逐元素映射的方式自定义未匹配返回值:
import numpy as np # 未匹配到的位置默认返回NaN,你可以修改为其他默认值比如0 df_result = df_age.applymap(lambda x: age_map.get(x, np.nan))
两种实现方式输出的df_result的行列数、索引、列名都和原始df_age完全一致,无需额外做结构调整。
内容的提问来源于stack exchange,提问作者Suchana Ghosh
相关产品推荐
相关产品推荐

