-1

Pandas read_csv 接受转换器来预处理每个字段。这对于 int64 验证或混合日期格式等非常有用。您能否提供一种将多列读取为 pl.Utf8 然后转换为 Int64、Float64、Date 等的方法?

4

1 回答 1

0

如果您需要像 pandas 中的转换器那样预处理某些列,您可以将该列读取为pl.Utf8dtype 并在强制expressions转换之前使用极坐标来处理该列。


csv = """a,b,c
#12,1,2,
#1,3,4
1,45,5""".encode()

(pl.read_csv(csv, dtypes={"a": pl.Utf8})
     .with_column(pl.col("a").str.replace("#", "").cast(pl.Int64))
)

或者,如果您想对该 dtype 的多个列执行相同的操作

csv = """a,b,c,str_col
#12,1#,2foo,
#1,3#,4,bar
1,45#,5,ham""".encode()

pl.read_csv(
    file = csv,
).with_columns([
    pl.col(pl.Utf8).exclude("str_col").str.replace("#","").cast(pl.Int64),
])
于 2022-02-15T09:04:49.793 回答