小编mir*_*avi的帖子

长 .when().then().when().then().otherwise() 链的替代方案

是否有一些聪明的替代方法可以编写长的when().then().otherwise()链而不对值进行硬编码,请参见下面的示例:

\n

假设我们有以下数据框

\n
df = pl.DataFrame(\n    {\n        "Market":["AT", "AT", "DE", "DE", "CA", "DE", "UK", "US"],\n        "Number of Days":[1, 2, 3, 4, 3, 4, 2, 1],\n        \n    }\n)\n
Run Code Online (Sandbox Code Playgroud)\n

用户将一些条件定义为不同国家的字典

\n
params = {\n    "AT":{"Value": 1},\n    "DE":{"Value": 2},\n    "CA":{"Value": 3},\n    "UK":{"Value": 1},\n    "US":{"Value": 2}\n}\n
Run Code Online (Sandbox Code Playgroud)\n

然后我对国家/地区进行硬编码并使用 Polars .with_columns() 中的国家/地区,如下所示:

\n
(\n    df\n    .with_columns(\n        [\n            pl.when(pl.col("Market") == "AT").then(pl.col("Number of Days") + params["AT"]["Value"])\n            .when(pl.col("Market") == "DE").then(pl.col("Number of Days") + params["DE"]["Value"])\n            .when(pl.col("Market") == "CA").then(pl.col("Number of Days") + params["CA"]["Value"])\n            .when(pl.col("Market") == "UK").then(pl.col("Number of Days") …
Run Code Online (Sandbox Code Playgroud)

python-polars

5
推荐指数
1
解决办法
194
查看次数

Polars read_excel 的日期格式问题

我正在尝试将相当混乱的 Excel 文件读取到 Polars 数据帧,但收到“XlsxValueError:错误:潜在无效的日期格式。”。

我认为该问题与某些采用 Excel 数字日期格式的日期列值有关,从而引发错误。有没有办法让我对 Polars 或 Xlsx2csv 选项进行设置,我希望将列读取为字符串类型,而不是尝试转换为日期。我尝试将 infer_schema_length 设置为 0 以将列读取为字符串,但看起来它已经是 xlsx2csv writer 引发了错误。

我的代码目前如下:

pl.read_excel(file="file_path",
         sheet_name="sheet_name",
        read_csv_options={"infer_schema_length":0},
         xlsx2csv_options={"skip_hidden_rows":False})
Run Code Online (Sandbox Code Playgroud)

出去:

XlsxValueError: Error: potential invalid date format.
Run Code Online (Sandbox Code Playgroud)

当使用 Pandas read_excel 读取数据时,它不会引发错误。当尝试将 Pandas df 转换为极坐标时,会引发错误:

df = pd.read_excel("file_name",
         sheet_name="sheet_name")
pl.from_pandas(df)
Run Code Online (Sandbox Code Playgroud)

出去:

ArrowTypeError: Expected bytes, got a 'int' object
Run Code Online (Sandbox Code Playgroud)

我当前的解决方法(不理想)是使用 Pandas 以字符串格式读取数据,然后转换为 Polars 数据帧并开始清理数据。

python python-polars

2
推荐指数
1
解决办法
1969
查看次数

标签 统计

python-polars ×2

python ×1