如何在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
相关产品推荐
相关产品推荐

