在Python中聚合时间序列数据保留日期列

时间:2017-08-06 19:48:57

标签: python pandas dataframe time-series aggregate

我有一个数据集如下:

date          jobcategory
2016-01-01     SP    
2016-01-01     DP   
2016-01-01     SP   
2016-01-01     CP   
2016-01-01     DP   
2016-01-01     DP   
2016-01-01     DP   
2016-01-02     SP   
2016-01-02     CP   
2016-01-02     SP   
2016-01-02     CP   
2016-01-02     DP   
2016-01-02     TP   
2016-01-02     DP   
2016-01-02     DP   
2016-01-02     DP   
2016-01-03     SP   
2016-01-03     SP   
2016-01-03     DP   
2016-01-03     DP   
2016-01-03     SP   
2016-01-03     DP   
2016-01-04     CP   
2016-01-04     MP       

我正在尝试将此聚合以维护日期字段的唯一性,同时获取第二列中某个作业类别的计数,如下所示:

date      jobcategory   Count
2016-01-01     SP       2
2016-01-02     SP       2
2016-01-03     SP       3
2016-01-04     SP       0

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

首先使用df.groupby上的date,然后使用原始日期列df.merge来获取0个计数。

In [921]: df[df.jobcategory == 'SP'].groupby('date', as_index=False).count().merge(df[['date']].drop_duplicates(), how='outer').fillna(0)
Out[921]: 
        date  jobcategory
0 2016-01-01          2.0
1 2016-01-02          2.0
2 2016-01-03          3.0
3 2016-01-04          0.0