Python 如何在特定日期开始时间组

Python 如何在特定日期开始时间组,python,pandas,Python,Pandas,我有一个按日期时间“12M”分组的df。我希望在12月31日之前将其分组。目前是每年1月31日结束。这似乎必须有一个简单的方法来做到这一点,但我一直无法找到任何文件,我要求一个。我尝试设置TimeGrouper('12M'),但它不会从年初开始计数,而是使用第一个日期索引作为起点 dfy = dfy.groupby([pd.TimeGrouper('12M'), 'fec_id', 'trans_typ', 'cmte_id'])['amount'].sum() dfy.head() #dfy.

我有一个按日期时间“12M”分组的df。我希望在12月31日之前将其分组。目前是每年1月31日结束。这似乎必须有一个简单的方法来做到这一点,但我一直无法找到任何文件,我要求一个。我尝试设置TimeGrouper('12M'),但它不会从年初开始计数,而是使用第一个日期索引作为起点

dfy = dfy.groupby([pd.TimeGrouper('12M'), 'fec_id', 'trans_typ', 'cmte_id'])['amount'].sum()
dfy.head()
#dfy.to_csv('out.csv')

date        fec_id     trans_typ  cmte_id  
2007-01-31  C00002600  24K        C00000729    1000
                                  C00002840    1000
                                  C00004325    1000
                                  C00005157    1000
                                  C00009985    1000
Name: amount, dtype: int64

closed='left'
参数与
pd.TimeGrouper
一起使用

pd.TimeGrouper('12M', closed='left')
您可以与
freq=A
一起使用:

g = df.groupby([pd.Grouper(level='date', freq='A'), 'cand_id', 'trans_typ'])['amount'].sum()
print g

date        cand_id    trans_typ
2001-12-31  H2HI02110  24K              2500
2007-12-31  H8IL21021  24K             -1000
            S6TN00216  24K              2000
2008-12-31  H2PA11098  24K              1000
            H4KS03105  24K             49664
            H6KS01146  24K              2000
            H6KS03183  24K              1000
            H8KS02090  24K              1000
            S6TN00216  24K              2500
2009-12-31  H0MO00019  24K               500
            H8MO09153  24K               500
            S0MO00183  24K              1000
            S0NY00410  24K                 0
            S2KY00012  24K              2000
            S6OH00163  24K             -4000
            S6TN00216  24K             -2000
            S6WY00068  24K             -3500