Polars中to_dicts()生成的字典列表顺序是否有保障?
Polars .to_dicts() 输出顺序的稳定性确认
是的,Polars 的 .to_dicts() 方法生成的字典列表顺序是完全有保障的,会严格遵循原 DataFrame 的行顺序和列顺序:
- 行顺序保障:Polars 内部会严格维护数据的行排列顺序,所有涉及行输出的方法(包括
.to_dicts())都会完整保留处理后 DataFrame 的行序。不管你是做过排序、过滤、切片还是其他行操作,输出的字典列表都会和 DataFrame 的行顺序完全一致。 - 列顺序保障:每个字典中的键值对顺序,也会和原 DataFrame 的列定义顺序保持一致,不会出现列乱序的情况。
以你的测试代码为例:
df = pl.DataFrame(data={ "name": ["Alice", "Bob", "Charlie"], "age": [30, 25, 35], "city": ["New York", "London", "Paris"], }).sort(by=['name'], descending=True) data = df.to_dicts() for record in data: print(record)
执行后输出的字典列表严格遵循了 name 降序后的行顺序(Charlie → Bob → Alice),且每个字典的键顺序都是 name → age → city,和 DataFrame 的列定义顺序完全匹配。
这种行为是 Polars 设计时确定的稳定特性,只要使用稳定版本的 Polars,每次执行的输出顺序都会保持一致,你可以放心依赖这个逻辑处理数据。
内容的提问来源于stack exchange,提问作者Grant Culp
相关产品推荐
相关产品推荐

