如何移除Polars DataFrame所有列名的前缀?
如何移除Polars DataFrame所有列名的前缀?
嘿,这事儿好办!要把Polars DataFrame列名里的#前缀去掉,有几种简单高效的方法,我给你演示下:
方法一:用
rename批量处理列名
Polars的rename方法支持传入一个函数,批量修改所有列名。你可以用字符串处理方法精准去掉开头的#:import polars as pl df = pl.from_repr(""" ┌─────┬─────┬─────┬─────┐ │ #a ┆ #b ┆ #c ┆ #d │ │ --- ┆ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ i64 ┆ i64 │ ╞═════╪═════╪═════╪═════╡ │ 1 ┆ 2 ┆ 3 ┆ 4 │ └─────┴─────┴─────┴─────┘ """) # 只移除开头的#(如果列名中间有#也不会受影响) df = df.rename(lambda col: col.lstrip('#'))要是你确定
#只会出现在列名的第一个位置,也可以直接用col[1:]来截取字符串,效果是一样的。方法二:直接修改列名列表
你也可以手动获取当前列名,处理后重新赋值给DataFrame的columns属性,这种方式更直观:# 批量处理列名 new_columns = [col.lstrip('#') for col in df.columns] # 替换原有列名 df.columns = new_columns
如果你的前缀不是#,而是更长的固定字符串(比如data_这类),可以用Python 3.9+支持的str.removeprefix()方法,精准移除指定前缀:
# 示例:移除列名开头的"data_"前缀 df = df.rename(lambda col: col.removeprefix('data_'))
备注:内容来源于stack exchange,提问作者GH KIM
相关产品推荐
相关产品推荐

