如何基于第二个DataFrame的取值为现有DataFrame动态新增列
pandas 实现代码
import pandas as pd # 构造示例数据(实际使用时替换为你自己的df1、df2即可) df1 = pd.DataFrame({ 'X': [1,4,7,3], 'Y': [2,5,8,6], 'Z': [3,6,9,9] }) df2 = pd.DataFrame({ 'col1': ['XX','YY','XX','ZZ'], 'col2': ['aa','bb','cc','vv'] }) # 核心处理逻辑 for col_name, group_data in df2.groupby('col1'): # 仅当df1不存在该列时新增 if col_name not in df1.columns: # 将分组后的col2值转为Series,和df1索引对齐,缺失位自动补NaN df1[col_name] = pd.Series(group_data['col2'].values) # 输出结果查看 print(df1)
逻辑说明
- 对df2按
col1字段分组,获取每个待新增列对应的所有取值集合 - 遍历每个分组时先做列名存在性校验,避免覆盖df1原有列数据
- 利用pandas Series自动对齐索引的特性,赋值时长度不足的行自动填充为NaN,完全匹配需求的输出格式
内容的提问来源于stack exchange,提问作者XTec
相关产品推荐
相关产品推荐

