0

我正在尝试使用 read_csv 命令将数据加载到 polars DataFrame 中,但我不断收到此错误

RuntimeError: Any(ComputeError("Could not parse 0.5 as dtype Int64 at column 13.\n                                            The total offset in the file is 11684833 bytes.\n\n                                            Consider running the parser `with_ignore_parser_errors=true`\n                                            or consider adding 0.5 to the `null_values` list."))

虽然我使用转换器参数如下:

converters = {
    'Date': lambda x: datetime.strptime(x, "%b %d, %Y"),
    'Number': lambda x: float(x)
    }

错误仍然存​​在。我还尝试使用错误中显示的参数:

with_ignore_parser_errors=TRUE

错误仍然存​​在。我能做些什么?我的问题不在于解析日期,而在于解析数字。这就是我现在所拥有的:

    converters = {
    'Date': lambda x: datetime.strptime(x, "%b %d, %Y"),
    'Number': lambda x: float(x)
    }
    df_file = pl.read_csv(file_to_read, has_headers=True, converters=converters,with_ignore_parser_errors=TRUE)
4

1 回答 1

0

Polars没有converters争论。所以这行不通。

似乎浮点列正试图被解析为整数。您可以通过将列名传递为:dtype来手动设置。pl.Int64kwargspl.read_csv(.., dtype = {"foo": pl.Int64}

或者您可以增加,infer_schema_length以便极坐标自动检测浮点数(前 100 行可能只包含整数)。

默认值为100,尝试增加它,直到架构推断正确检测到浮点列。

于 2022-01-26T16:21:57.653 回答