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

如何在Polars中控制列表列的元素打印数量?

控制Polars DataFrame中列表列的打印元素数量

你使用的pl.Config.set_fmt_str_lengths()方法仅用于限制字符串类型列的显示长度,无法控制列表列的元素显示数量。要调整列表列的打印元素数,需要使用Polars专门的fmt_list_lengths配置项。

解决方法

通过pl.Config.set_fmt_list_lengths()设置列表列要显示的元素数量,该配置既可以限制短列表的显示,也能让长列表展示更多元素:

import polars as pl

# 设置列表列显示的元素数量(示例设为10,可根据需求调整)
pl.Config.set_fmt_list_lengths(10)

N = 5
df = (
    pl.DataFrame({
        "id": range(N)
    })
    .with_row_index("value")
    .rolling(
        "id", period=f"{N}i"
    )
    .agg(
        pl.col("value")
    )
)

print(df)

修改后的输出

shape: (5, 2)
┌─────┬─────────────────┐
│ id  ┆ value           │
│ --- ┆ ---             │
│ i64 ┆ list[u32]       │
╞═════╪═════════════════╡
│ 0   ┆ [0]             │
│ 1   ┆ [0, 1]          │
│ 2   ┆ [0, 1, 2]       │
│ 3   ┆ [0, 1, 2, 3]    │
│ 4   ┆ [0, 1, 2, 3, 4] │
└─────┴─────────────────┘

临时生效的上下文管理器

如果不想全局修改配置,可以用上下文管理器临时设置:

import polars as pl

N = 5
df = (
    pl.DataFrame({
        "id": range(N)
    })
    .with_row_index("value")
    .rolling(
        "id", period=f"{N}i"
    )
    .agg(
        pl.col("value")
    )
)

# 仅在该代码块内生效
with pl.Config(fmt_list_lengths=10):
    print(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:45:50