如何用Polars的pl.read_csv()读取字符串而非文件?
能否用Polars的
pl.read_csv()读取字符串数据? 直接运行你给出的示例代码会报错,因为pl.read_csv()默认接收的是文件路径或者类文件对象,而非原始CSV格式字符串——它会把传入的content当作文件路径去查找,自然找不到对应文件。
要实现读取字符串形式的CSV数据,你需要用io.StringIO把字符串包装成类文件对象,再传给pl.read_csv(),修改后的可运行代码如下:
import polars as pl from io import StringIO content = """c1, c2 A,1 B,3 C,2""" df = pl.read_csv(StringIO(content)) print(df)
运行后会输出对应的DataFrame:
shape: (3, 2) ┌─────┬─────┐ │ c1 ┆ c2 │ │ --- ┆ --- │ │ str ┆ i64 │ ├─────┼─────┤ │ A ┆ 1 │ │ B ┆ 3 │ │ C ┆ 2 │ └─────┴─────┘
这种方式和你熟悉的R data.table的fread()逻辑类似,只是Polars需要显式将字符串转为类文件对象。对于多列的长表格,用CSV字符串构造DataFrame确实比字典式构造更直观,修改数据时无需手动对齐列表元素,能有效降低出错概率。
内容的提问来源于stack exchange,提问作者Samuel Allain
相关产品推荐
相关产品推荐

