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

求Polars中numpy.tile函数的等效实现方案

Polars 实现类似 numpy.tile 的功能

假设我们有如下初始DataFrame:

import polars as pl

df = pl.DataFrame({"col1": [1, 2, 3], "col2": [4, 5, 6]})

要实现将整个DataFrame重复指定次数(比如2次)的效果,有以下几种简洁的实现方式:

方法1:使用 pl.concat 重复拼接

这是最直观的方式,直接将原DataFrame多次放入列表后拼接:

# 重复2次
df_tiled = pl.concat([df] * 2)
print(df_tiled)

输出结果:

shape: (6, 2)
┌──────┬──────┐
│ col1 ┆ col2 │
│ ---  ┆ ---  │
│ i64  ┆ i64  │
╞══════╪══════╡
│ 1    ┆ 4    │
│ 2    ┆ 5    │
│ 3    ┆ 6    │
│ 1    ┆ 4    │
│ 2    ┆ 5    │
│ 3    ┆ 6    │
└──────┴──────┘

方法2:使用 repeat + explode 对整行操作

通过构造重复的索引,再展开行来实现:

df_tiled = df.with_row_index().select(
    pl.all().repeat(2).explode()
).drop("index")
print(df_tiled)

这种方式适合需要对行级进行重复操作的场景,同样能得到目标结果。

方法3:使用 extend 方法(原地修改)

如果不需要保留原DataFrame,可以直接原地扩展:

df.extend(df)
print(df)

执行后原DataFrame会被修改为重复后的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:05:00