Skip to main content
 首页 » 编程设计

python之Pandas 按月计算计数

2025年05月04日11grandyang

如何用fill统计每个月的项目数?

data = [ 
        {"event_date": "2018-08-10", "tags": ["tv", "radio"]}, 
        {"event_date": "2018-08-11", "tags": ["tv", "radio"]}, 
        {"event_date": "2018-09-10", "tags": ["tv"]}, 
        {"event_date": "2018-11-10", "tags": ["tv", "wifi"]} 
    ]  
df = pd.DataFrame(data) 
df.groupby([(df['event_date']).dt.month, df['tags']]).count() 

我的期望:

month tv radio wifi 
8 2 2 0 
9 1 0 0 
10 0 0 0 
11 1 0 1 

请您参考如下方法:

所以这是 unnest ,get_dummies 和reindex 混合题

df.event_date=pd.to_datetime(df.event_date).dt.month 
 
l=list(range(df.event_date.min(),df.event_date.max()+1)) 
df.set_index('event_date').tags.apply(pd.Series).stack().\ 
  str.get_dummies().sum(level=0).\ 
   reindex(l,fill_value=0) 
Out[834]:  
            radio  tv  wifi 
event_date                  
8               2   2     0 
9               0   1     0 
10              0   0     0 
11              0   1     1