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

如何按注册年份分组对‘上次登录间隔天数’列应用value_counts?

问题

假设我有如下DataFrame:

Days since last login    Year of registration
1                        2010
2                        2010
4                        2010
1                        2010
1                        2011
10                       2011

请问如何对‘Days since last login’列应用value_counts,使其按各注册年份分别计算?我认为可以用unique()函数和for循环解决,但想知道更优雅的实现方案。

解决方案

直接使用groupby结合value_counts是最简洁优雅的实现方式,无需手动循环:

df.groupby('Year of registration')['Days since last login'].value_counts()

这段代码会先按Year of registration列分组,然后对每个分组内的Days since last login列统计值的出现频次。返回结果是一个多级索引的Series,示例输出如下:

Year of registration  Days since last login
2010                  1                        2
                      2                        1
                      4                        1
2011                  1                        1
                      10                       1
Name: count, dtype: int64

如果希望结果以宽表形式展示(将登录间隔天数作为列),可以追加unstack()方法,并用fill_value填充缺失值:

df.groupby('Year of registration')['Days since last login'].value_counts().unstack(fill_value=0)

对应的输出为:

Days since last login  1  2  4  10
Year of registration              
2010                   2  1  1   0
2011                   1  0  0   1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 05:12:08