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

如何按用户ID与周数分组计算周内访问天数的均值?

解决方案

可以通过以下步骤用Pandas实现需求:

  1. 构建日期与周内天数的映射关系:根据你给出的每周日期对应规则,创建字典映射每个日期对应的周内天数。
  2. 转换日期为周内天数:用map函数将原始数据的日期列转换为对应的周内天数。
  3. 分组计算均值:按用户ID和周数分组,对转换后的周内天数求平均值,得到mean_day。

完整代码示例

import pandas as pd

# 构造原始DataFrame
data = {
    '用户ID': [1,1,1,1,1,2,2,2],
    '周数': [1,1,2,2,2,1,2,2],
    '日期': ['23/07/22','24/07/22','29/07/22','30/07/22','01/08/22','22/07/22','29/07/22','02/08/22']
}
df = pd.DataFrame(data)

# 定义日期到周内天数的映射
week_day_map = {
    '22/07/22': 1,
    '23/07/22': 2,
    '24/07/22': 3,
    '29/07/22': 1,
    '30/07/22': 2,
    '01/08/22': 3,
    '02/08/22': 4
}

# 添加周内天数列
df['day_of_week'] = df['日期'].map(week_day_map)

# 分组计算均值
result = df.groupby(['用户ID', '周数'])['day_of_week'].mean().reset_index(name='mean_day')

print(result)

运行结果

用户ID  周数  mean_day
0      1    1       2.5
1      1    2       2.0
2      2    1       1.0
3      2    2       2.5

该结果与你期望的输出完全一致。若实际数据量更大,只需扩展week_day_map的映射关系即可适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:25:30