0

这曾经是这样处理的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)

谢谢

4

1 回答 1

1

df.columns返回一个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   │
└─────┴─────┘

于 2022-03-04T14:08:31.630 回答