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