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

Pandas按月份统计唯一ID时if语句出错问题求助

问题分析与解决方法

原代码的错误点

  • 布尔Series不能直接用于if判断:data["Month"] == "Sept. 2022"返回的是与原DataFrame行数一致的布尔Series,pandas不允许将这类Series直接作为if的判断条件,运行时会抛出ValueError。
  • 仅处理单个月份:原代码只能硬编码处理"Sept. 2022"这一个月份,无法实现按年月批量统计所有月份的唯一ID数量。

正确实现方法

方法1:批量统计所有月份的唯一ID数量

使用groupby按Month分组,对每组的ID.列统计唯一值数量,一步得到所有月份的结果:

import pandas as pd 

path = "你的文件路径"
data = pd.read_excel(path)

# 按月份分组,统计每个月的唯一ID数量
monthly_unique_ids = data.groupby("Month")["ID."].nunique()
print(monthly_unique_ids)

输出示例:

Month
Sept. 2022    1
Oct. 2022     1
Name: ID., dtype: int64

方法2:单独提取指定月份的唯一ID及数量

如果只需要单个月份的结果,使用布尔索引筛选数据,而非if语句:

# 筛选出Sept. 2022的所有行
sept_data = data[data["Month"] == "Sept. 2022"]
# 获取该月的唯一ID列表
sept_unique_ids = sept_data["ID."].unique()
# 获取该月的唯一ID数量
sept_unique_count = sept_data["ID."].nunique()

print("Sept. 2022的唯一ID列表:", sept_unique_ids)
print("Sept. 2022的唯一ID数量:", sept_unique_count)

流失率计算提示

有了每月唯一用户数后,流失率通常按「(上月活跃用户数 - 本月活跃用户数) / 上月活跃用户数」计算,可基于monthly_unique_ids的结果按月份顺序完成计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 17:31:00