Pandas 将日期列按月份分组并划分

Pandas 将日期列按月份分组并划分,pandas,Pandas,我有一个数据帧df: store date invoice_count A 2018-04-03 2 A 2018-04-06 5 A 2018-06-15 5 B 2018-05-05 2 B 2018-04-09 5 C 2018-02-16 6 其中包含给定日期的门店发票数量(生成的发票数量) 我正试图将它们分组,以便每个商店

我有一个数据帧df:

store   date         invoice_count
 A    2018-04-03         2
 A    2018-04-06         5
 A    2018-06-15         5
 B    2018-05-05         2
 B    2018-04-09         5
 C    2018-02-16         6
其中包含给定日期的门店发票数量(生成的发票数量)

我正试图将它们分组,以便每个商店都能得到一个月的发票数量

此格式的预期最终数据帧:

store jan_18  feb_18  mar_18  apr_18  may_18  june_18
  A     0       0       0       7       0        5
  B     0       0       0       5       2        0
  C     0       6       0       0       0        0 
有没有办法根据月份对日期进行分组

注意:这是一个虚拟数据框,最终的每月列名可以采用其他适当的格式。

与一起使用并聚合
sum
,然后根据重塑,必要时通过添加缺少的列,日期时间的上次更改格式为:


非常好而且很快。
df = (df.set_index('date')
        .groupby('store')
        .resample('m')['invoice_count']
        .sum()
        .unstack(fill_value=0))

df = df.reindex(columns=pd.date_range('2018-01-01', df.columns.max(), freq='m'), fill_value=0)
df.columns = df.columns.strftime('%b_%y')
print (df)
       Jan_18  Feb_18  Mar_18  Apr_18  May_18  Jun_18
store                                                
A           0       0       0       7       0       5
B           0       0       0       5       2       0
C           0       6       0       0       0       0