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

如何在Polars链式调用的with_columns中引用DataFrame.height?

在Polars链式调用中动态生成对应行数的随机列

当然可以,以下两种方案都能在单个链式表达式中实现,无需中断调用链:

方案1:Polars原生表达式(推荐)

利用pl.count()动态获取总行数,结合numpy随机函数生成对应长度的列,全程在Polars表达式上下文内完成:

import polars as pl
import datetime

df = (pl
    .DataFrame(dict(
        j=pl.datetime_range(datetime.date(2023, 1, 1), datetime.date(2023, 1, 3), '4h', closed='left', eager=True),
    ))
    .with_columns(
        k=pl.numpy.random.randint(10, 99, size=pl.count()).alias('k')
    )
)

print(df)

无论时间间隔如何修改,pl.count()会自动适配当前DataFrame的行数,彻底避免硬编码数值的问题。

方案2:通过map_batches直接访问DataFrame高度

如果需要直接引用height属性,可借助map_batches访问当前DataFrame的元数据:

import polars as pl
import datetime

df = (pl
    .DataFrame(dict(
        j=pl.datetime_range(datetime.date(2023, 1, 1), datetime.date(2023, 1, 3), '4h', closed='left', eager=True),
    ))
    .map_batches(lambda df: df.with_columns(k=pl.lit(pl.numpy.random.randint(10, 99, df.height))))
)

print(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:53:13