2016-01-21 89 views
2

我需要在大熊猫中执行一个复杂的群,除以日期范围。群熊猫除以日期范围

       PROFIT TOTAL MATCH_HOME PROFIT_2 
LEAGUE MATCH_DATE MATCH_HOME    
    1 2007-06-05 (1.2, 1.6] -20.00 1.00  1.55  21.00 
    2 2007-08-10 (2.4, 2.8] 19.50 0.50  2.50 -19.00 
    5 2012-04-05 (2, 2.4] 18.20 0.20  2.40 -18.00 
     2014-09-05 (2, 2.4] -14.00 1.40  2.20  15.40 

我得到这个数据帧由下面的代码:

bins = np.linspace(0, 10, 25, endpoint=False) 
g1 = dfml.groupby([dfml.LEAGUE, dfml.MATCH_DATE, 
        pd.cut(dfml.MATCH_HOME, bins)]).agg({'MATCH_HOME' : 'min', 
                 'PROFIT': sum, 
                 'PROFIT_2': sum, 
                 'TOTAL': sum 
                 }) 
g1[g1['TOTAL'] > 0] 

我怎么能按Month而不是Day

+0

IIUC可以时间值转换到周期 - 'DF ['MATCH_DATE '] = df ['MATCH_DATE']。dt.to_period('M')' ' – jezrael

回答

2

也许你可以使用dt.month

bins = np.linspace(0, 10, 25, endpoint=False) 
g1 = dfml.groupby([dfml.LEAGUE, dfml.MATCH_DATE.dt.month, 
        pd.cut(dfml.MATCH_HOME, bins)]).agg({'MATCH_HOME' : 'min', 
                 'PROFIT': sum, 
                 'PROFIT_2': sum, 
                 'TOTAL': sum 
                 }) 
g1[g1['TOTAL'] > 0] 

或者如果您需要多年和月在一起,转换datetimeperiod

df['MATCH_DATE'] = df['MATCH_DATE'].dt.to_period('M')