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

R语言按周计算平均值并为dataframe新增列的解决方案问询

解决方案

针对你的需求,最优实现方案是使用pandas的groupby()结合transform()方法,无需额外做表合并,即可将分组聚合得到的周均值直接映射到同周的所有行。

完整可运行代码如下:

import pandas as pd

# 构造示例数据(你可以替换成自己的数据源读取逻辑)
data = {
    'day': ['Monday', 'Tuesday', 'Friday', 'Monday', 'Thursday'],
    'week_number': [1, 1, 1, 2, 2],
    'percent': [15.3, 10.0, 5.2, 7.0, 13.0]
}
df = pd.DataFrame(data)

# 核心处理:按周分组计算percent平均值,保留2位小数后生成week_avg列
df['week_avg'] = df.groupby('week_number')['percent'].transform('mean').round(2)
# 可选:统一percent列为两位小数,匹配预期输出格式
df['percent'] = df['percent'].round(2)

# 输出验证结果
print(df)

方案优势

对比先分组聚合生成周均值中间表、再用merge合并回原表的常规方案,transform方法无需生成中间表,也不用处理关联字段匹配逻辑,代码更简洁,大数据量下执行效率更高。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:45:08