You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Polars中使用natsort?附运行失败代码求解决方案

在Polars中使用natsort的正确方法及问题修复

你的代码报错的核心原因是:data[["column_0"]]返回的是Polars DataFrame,而index_natsorted需要接收一维可迭代对象(比如Polars Series),类型不匹配导致无法正常运行。以下是两种修复方案:

方案1:修复原切片逻辑

直接提取目标列的Series传入index_natsorted,再用结果切片DataFrame:

import polars as pl
from natsort import index_natsorted, natsorted

data = pl.DataFrame([["a1","a10","a2"], [4,5,6]],)
# 提取column_0的Series而非DataFrame
sorted_indices = index_natsorted(data["column_0"])
result = data.slice(sorted_indices)
print(result)

方案2:更贴合Polars风格的排序方式

利用Polars的sort方法的key参数,直接传入index_natsorted生成排序依据,代码更简洁:

import polars as pl
from natsort import index_natsorted, natsorted

data = pl.DataFrame([["a1","a10","a2"], [4,5,6]],)
# 通过key参数指定自然排序规则
result = data.sort("column_0", key=lambda s: index_natsorted(s))
print(result)

两种方案都能实现自然排序:

  • 方案1适合需要手动处理排序索引的场景,保留了原代码的切片思路;
  • 方案2更符合Polars的API设计习惯,链式调用更流畅。

内容的提问来源于stack exchange,提问作者Liripo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 09:52:52