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

提取2021年9月各用户不在自有记录及指定列表内的剩余日期的方法

请使用Markdown格式化以下内容
  • 标题使用井号(#)标注
  • 列表项使用短横线(-)开头
  • 文本强调使用星号(*)包裹
  • 代码或命令使用反引号(`)包裹
  • 引用文本使用大于号(>)开头
  • 链接格式为链接文本
  • 图片格式为图片替代文本

需求实现方案

实现逻辑

  • 先自动计算指定年月的总天数,生成当月全量日期的集合
  • 定义全局排除日期的集合
  • 筛选出目标年月的用户数据,按用户维度聚合该用户当月已有的日期集合
  • 对每个用户,用全量日期集合先后减去全局排除集合、用户自有日期集合,排序后转成逗号分隔的字符串即可得到结果

代码实现(基于Pandas)

import pandas as pd
import calendar

# 定义基础参数
exclude_days = [1,5,16,29]
target_year = 2021
target_month = 9

# 自动计算当月总天数,适配不同年月无需硬编码
_, total_days = calendar.monthrange(target_year, target_month)
all_day_set = set(range(1, total_days + 1))
exclude_set = set(exclude_days)

# 过滤出目标年月的用户数据
target_df = df[(df['year'] == target_year) & (df['month'] == target_month)]

# 按用户聚合自有日期集合
user_day_group = target_df.groupby('user_id', as_index=False)['day'].agg(set)

# 定义剩余日期计算函数
def calc_remaining(row):
    remaining_days = sorted(all_day_set - exclude_set - row['day'])
    return ','.join(map(str, remaining_days))

# 生成结果列
user_day_group['remaining_days_of_month'] = user_day_group.apply(calc_remaining, axis=1)

# 输出最终结果
result = user_day_group[['user_id', 'remaining_days_of_month']]
print(result)

运行上述代码即可得到和预期完全一致的输出结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:09:02