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

如何在Polars DataFrame中划分训练集与测试集?现有方法存冗余列问题

Polars DataFrame随机划分训练/测试集(无多余列)

这里有两种简洁的方法帮你避免生成多余的split列:

方法1:采样+反连接(推荐)

直接抽取训练集,再通过反连接得到测试集,全程不需要额外添加列:

# 按8:2比例随机拆分,shuffle=True确保随机性,seed可选用于结果复现
train = df.sample(fraction=0.8, shuffle=True, seed=42)
test = df.join(train, on=df.columns, how="anti")

方法2:优化partition_by写法

如果你想保留原来的拆分思路,只需要在partition_by中设置include_key=False,拆分后的数据集就不会包含用于分组的split列:

train, test = (
    df.with_columns(pl.lit(np.random.rand(df.height) > 0.8).alias('split'))
      .partition_by('split', include_key=False)
)

这样处理后,train和test里就不会有多余的split列,省去手动删除的步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:25:15