Polars:在列名中搜索和替换

Polars: Search and replace in column names

这在 pandas 中曾经是这样处理的:

df.columns = df.columns.str.replace('.','_')

此代码有效,但绝对不是正确的解决方案。

renamed = {}
for column_name in list(filter(lambda x: '.' in  x, df.columns)):
    renamed[column_name] = column_name.replace('.', '_')
df = df.rename(renamed)

感谢

df.columns returns a python List[str] 而且它还支持__setitem__,所以你可以在这里使用python。

df = pl.DataFrame({
    "a.c": [1, 2],
    "b.d": [3, 4]
})
df.columns = list(map(lambda x: x.replace(".", "_"), df.columns))
print(df)
shape: (2, 2)
┌─────┬─────┐
│ a_c ┆ b_d │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪═════╡
│ 1   ┆ 3   │
├╌╌╌╌╌┼╌╌╌╌╌┤
│ 2   ┆ 4   │
└─────┴─────┘