
本文介绍两种主流方法:批量去除列名前缀(如 #)的简洁赋值法,以及针对特定列的字典映射重命名法,并附代码示例与适用场景说明。
本文介绍两种主流方法:批量去除列名前缀(如 `#`)的简洁赋值法,以及针对特定列的字典映射重命名法,并附代码示例与适用场景说明。
在 Polars 中重命名列名是数据预处理的常见操作。根据列名变化的规律性,推荐采用不同策略以兼顾可读性、性能与可维护性。
✅ 方法一:批量处理(适用于统一模式)
当所有列名遵循相同规则(例如均以 # 开头),直接修改 df.columns 属性最为高效——它原地更新列名列表,无需创建新 DataFrame:
import polars as pl
df = pl.DataFrame({"#a": [1, 2], "#b": [3, 4], "#c": [5, 6], "#d": [7, 8]})
df.columns = [col.lstrip("#") for col in df.columns] # 批量去前缀
print(df)该方式简洁、内存友好,但不返回新 DataFrame,属于就地修改(in-place)。注意:Polars 的 columns 属性为可写,此操作安全有效。
✅ 方法二:精准映射(适用于个别列或无规律命名)
若仅需重命名部分列,或新旧名称无统一规则,应使用 rename() 方法并传入字典映射:
df = pl.DataFrame({"#a": [1, 2], "#b": [3, 4], "#c": [5, 6], "#d": [7, 8]})
df = df.rename({"#a": "a", "#b": "b", "#c": "c", "#d": "d"})rename() 返回新 DataFrame(Polars 默认不可变语义),更符合函数式编程习惯,也便于链式调用(如 .rename(...).filter(...).select(...))。
⚠️ 注意事项
-
df.columns = [...]要求新列名数量与原列数严格一致,否则会报错; -
rename()中未提及的列名保持不变,适合增量更新; - 列名必须为字符串,且不能重复;建议重命名后用
df.columns快速验证结果。
掌握这两种方式,即可灵活应对从自动化清洗到精细字段治理的各种列重命名需求。

















