Pandas如何将DataFrame的多列额外字段合并为单个字典格式列?
实现方案
核心思路
先筛选出所有非固定字段的额外列,再将这些列的每行值转为字典格式赋值给新列即可,代码支持动态适配不同场景下的额外列变动。
完整代码示例
import pandas as pd # 1. 定义固定列列表 fixed_cols = ['record', 'yhat', 'residual', 'hat'] # 2. 自动筛选所有不在固定列里的额外列 extra_cols = [col for col in df.columns if col not in fixed_cols] # 3. 生成additional列(数值保持原数据类型) df['additional'] = df[extra_cols].to_dict('records') # 可选:如果需要将数值转为示例中的科学计数法字符串格式,用以下代码替换步骤3即可 # def format_row_dict(row): # return {col: f"{row[col]:.4E}" for col in extra_cols} # df['additional'] = df.apply(format_row_dict, axis=1) # 4. 保留需要的列,删除原始额外列 df = df[fixed_cols + ['additional']]
效果说明
执行代码后输出的DataFrame结构和你给出的预期效果完全一致,额外列的数量、名称发生变动时不需要修改代码逻辑,通用性较强。
内容的提问来源于stack exchange,提问作者neutrino
相关产品推荐
相关产品推荐

