如何在列名包含特定文本时批量修改数据表列名
批量修改数据表列名实现方法
核心规则:将目标列名以下划线_为分隔符做字符串拆分,取拆分结果的最后一段作为新列名即可,以下是不同数据处理场景的实现代码:
- Python Pandas 环境
直接对DataFrame的columns属性做列表推导式批量替换即可:
以示例列名# 全量列批量重命名 df.columns = [col.split("_")[-1] for col in df.columns]MAC000306_Std_E_Affluent为例,执行split("_")会得到拆分列表['MAC000306', 'Std', 'E', 'Affluent'],取列表最后一位就是目标列名Affluent,其余列会按相同规则自动生成Comfortable、对应列值、Adversity,和预期结果完全一致。
如果需要保留不符合下划线命名规则的列名,可以增加判断逻辑:# 仅对包含下划线的列执行重命名,其余列保留原名 df.columns = [col.split("_")[-1] if "_" in col else col for col in df.columns] - MySQL 数据库环境
可以用内置的SUBSTRING_INDEX函数快速截取最后一段内容,先验证截取结果再执行字段修改:-- 验证截取逻辑是否正确 SELECT SUBSTRING_INDEX('MAC000306_Std_E_Affluent', '_', -1); -- 验证通过后执行字段重命名 ALTER TABLE 你的表名 RENAME COLUMN 原列名 TO 新列名; - R dplyr 环境
用rename_with配合字符串拆分函数批量处理:library(dplyr) library(stringr) df <- df %>% rename_with(~str_split_i(.x, "_", -1))
内容的提问来源于stack exchange,提问作者tellerYL
相关产品推荐
相关产品推荐

