Pandas如何借助通配符用_View后缀列首值批量重命名对应数值列表头
实现步骤
你可以直接批量生成列名映射字典,一次性完成重命名,不需要手动匹配列,代码如下:
- 生成重命名映射规则
rename_map = {} # 遍历所有带_View后缀的列 for view_col in df.columns[df.columns.str.endswith('_View')]: # 提取对应数值列的列名,python3.9+支持removesuffix,低版本可以用 view_col[:-5] 替代 val_col = view_col.removesuffix('_View') if val_col in df.columns: # 取_View列的首个值作为数值列的新表头 rename_map[val_col] = df[view_col].iloc[0]
- 给数值列重命名
你已经拆分了df_values,直接调用rename方法即可,无对应_View的列会自动保留原名:
df_values_renamed = df_values.rename(columns=rename_map)
如果不需要保留原_View列,也可以直接在原数据集上处理:
df_final = df.rename(columns=rename_map).drop(columns=df.columns[df.columns.str.endswith('_View')])
效果验证
拿你给出的示例数据运行后,最终的列名会变成:['Service', 'Ticket', 'temp', 'pres', 'shift', 'D', 'id', 'E'],完全符合你的需求。
内容的提问来源于stack exchange,提问作者guardian
相关产品推荐
相关产品推荐

