这是一个使用pandas.PeriodIndex的解决方案(注意:PeriodIndex似乎不支持倍数>
1的时间规则,例如‘4M’)。我认为您的奖金问题的答案是
.size()。
In [49]: df.groupby([pd.PeriodIndex(df.recd, freq='Q'), ....: pd.PeriodIndex(df.ship, freq='Q'), ....: pd.cut(df['qty'], bins=[0,5,10]), ....: pd.qcut(df['price'],q=2), ....: ]).size()Out[49]: qty price 2012Q2 2013Q1 (0, 5] [2, 5] 12012Q3 2013Q1 (5, 10] [2, 5] 12012Q4 2012Q3 (5, 10] [2, 5] 1 2013Q1 (0, 5] [2, 5] 1 (5, 10] [2, 5] 12013Q1 2012Q3 (0, 5] (5, 8] 1 2013Q1 (5, 10] (5, 8] 22013Q2 2012Q4 (0, 5] (5, 8] 1 2013Q2 (0, 5] [2, 5] 1



