Pandas read_csv 接受转换器来预处理每个字段。这对于 int64 验证或混合日期格式等非常有用。您能否提供一种将多列读取为 pl.Utf8 然后转换为 Int64、Float64、Date 等的方法?
问问题
37 次
1 回答
0
如果您需要像 pandas 中的转换器那样预处理某些列,您可以将该列读取为pl.Utf8
dtype 并在强制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 回答