按唯一用户ID统计性别总数,修正df.describe()统计异常问题
解决描述性统计维度不匹配的问题
问题根源
你的数据属于用户多行为明细数据(单用户对应多条记录),df.describe(exclude=np.number)是对全量数据行做统计:
user_id的唯一值是去重后的用户总数(5464)user_gender的频数是所有数据行中male出现的次数(55775),本质是用户行为的总次数,而非男性用户的数量,所以出现逻辑矛盾。
正确解决方案
先对用户维度去重,得到每个用户的唯一记录,再做统计:
生成去重后的用户数据集
# 按user_id去重,保留每个用户的第一条记录(可根据需求调整keep参数,比如'last'或自定义规则) user_unique_df = df.drop_duplicates(subset='user_id', keep='first')对去重后的数据集执行描述性统计
user_unique_df.describe(exclude=np.number)直接查看性别用户数(可选)
如果只需要性别维度的用户数量统计,可直接使用:user_unique_df['user_gender'].value_counts()
内容的提问来源于stack exchange,提问作者lilpearce
相关产品推荐
相关产品推荐

