Polars DataFrame调用group_by报错:'DataFrame'对象无此属性
解决Polars DataFrame的AttributeError: 'DataFrame' object has no attribute 'group_by'问题
这个错误是Polars版本差异导致的:
- 你参考的文档是Polars新版本(0.18.0及以后)的写法,新版本中分组方法名为
group_by(带下划线) - 你当前安装的是旧版本Polars(0.17.x及更早),旧版本的分组方法名为
groupby(无下划线)
两种解决办法:
- 升级Polars到最新版本
执行以下命令更新依赖:
pip install --upgrade polars
升级完成后,你原来的代码可以直接正常运行,输出结果如下:
shape: (3, 2) ┌─────┬─────┐ │ a ┆ b │ │ --- ┆ --- │ │ str ┆ i64 │ ╞═════╪═════╡ │ a ┆ 2 │ │ b ┆ 5 │ │ c ┆ 3 │ └─────┴─────┘
- 适配旧版本修改代码
如果暂时不想升级,只需把方法名中的下划线去掉,修改后的代码如下:
import polars as pl df = pl.DataFrame( { "a": ["a", "b", "a", "b", "c"], "b": [1, 2, 1, 3, 3], "c": [5, 4, 3, 2, 1], } ) df.groupby("a").agg(pl.col("b").sum())
运行后同样可以得到正确的分组聚合结果。
内容的提问来源于stack exchange,提问作者Talha Tayyab
相关产品推荐
相关产品推荐

