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

如何在Pandas中用groupby补全缺失日期分组并填充均值为0?

补全一周天数并设置缺失日平均价格为0的解决方案

嘿,我来帮你搞定这个补全一周天数的问题!先确认下你提到的基础操作完全没问题:

  • 获取厂商的计数:df.manufacturer.value_counts()
  • 按day分组计算每日平均价格:df.groupby("day").price.mean()

接下来重点解决补全一周7天,缺失天均值设为0的需求,分两种常见场景给你具体方案:

场景1:day列是数字格式(比如1=周一,7=周日)

假设你的day列用1-7的数字代表一周7天,代码可以这么写:

import pandas as pd

# 先计算已有天数的平均价格
daily_mean = df.groupby("day").price.mean()

# 创建包含完整7天的索引,根据你实际的day数值范围调整(比如0-6就写range(0,7))
full_days = pd.Index(range(1, 8), name="day")

# 重新索引补全缺失天数,缺失值填充为0
daily_mean_full = daily_mean.reindex(full_days, fill_value=0)

场景2:day列是星期字符串格式(比如'Monday'、'周二')

如果你的day列是星期名称,只需要把完整的星期列表对应上就行:

import pandas as pd

# 定义一周完整的星期名称,注意要和你数据里的格式完全匹配(大小写、语言要一致)
full_week_days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
# 如果是中文就换成:['周一', '周二', '周三', '周四', '周五', '周六', '周日']

# 计算已有天数的平均价格
daily_mean = df.groupby("day").price.mean()

# 重新索引补全,缺失位置填充0
daily_mean_full = daily_mean.reindex(full_week_days, fill_value=0)

小提示

  • groupby生成的结果只会包含数据中实际存在的day值,缺失的天数不会显示;
  • reindex是核心:它会按照你指定的完整索引重新排列数据,缺失的位置直接用fill_value参数指定的0填充;
  • 一定要保证完整天数列表的格式和你DataFrame里day列的格式完全一致,不然补全可能失效哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:36:35