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

如何在Rust中按日期列拆分Polars DataFrame?

按日期拆分Polars DataFrame的正确方式

Polars的DataFrame类并没有partition_by方法,这就是你报错的原因。要按date列拆分数据为多个子DataFrame,推荐用以下两种实现方式:

1. 遍历分组拆分出子DataFrame

用group_by结合iter_groups可以直接拿到每个日期对应的子DataFrame,适合需要单独处理每日数据的场景:

import polars as pl

# 读取CSV文件
df = pl.read_csv("your_dataset.csv")

# 按date分组并迭代每个子DataFrame
for date_key, daily_df in df.group_by("date").iter_groups():
    # 执行按天的分析逻辑
    print(f"日期 {date_key} 的数据量: {len(daily_df)}")
    # 示例:计算当日指标均值
    daily_avg = daily_df.select(pl.col("metric").mean())
    print(daily_avg)

2. 直接分组聚合(无需拆分)

如果你的目标是计算每日统计指标,不需要单独保留每个子DataFrame,直接用group_by+agg效率更高,避免额外内存开销:

daily_summary = df.group_by("date").agg(
    total_sales=pl.col("sales").sum(),
    avg_sales=pl.col("sales").mean(),
    customer_count=pl.col("customer_id").n_unique()
)

print(daily_summary)

关于partition_by的补充

你可能混淆了Polars中LazyFrame的partition_by方法——它的作用是将数据按列分区写入磁盘(比如写入Parquet时按date生成分区文件夹),而非拆分内存中的DataFrame:

# 示例:按date分区写入Parquet文件
df.lazy().partition_by("date").write_parquet("daily_partitions", hive_partitioning=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 18:42:06