我有一组数据点,如下所示。我每年的每一天都有类似的数据点
EVP_aes_256_cbc
如何按月份和日期进行分组并获取最小值和最大值?我需要在2个独立的数据帧中得到结果,一个用于最小值,一个用于最大值。结果数据框应具有如下输出
data1 = {'Date': {1: '01-01-2001',
2: '01-01-2002',
3: '01-01-2003',
4: '01-01-2004',
5: '01-01-2005',
6: '01-01-2006',
7: '01-01-2007',
8: '01-01-2008',
9: '01-01-2009',
10: '01-01-2010'
},
'milesrun': {1: '15',
2: '21',
3: '19',
4: '22',
5: '16',
6: '13',
7: '22',
8: '24',
9: '17',
10: '18'}}
我能够将月份和日期提取为单独的列,但无法正确分组。我试图避免使用numpy并查看是否有替代选项
答案 0 :(得分:1)
使用dt.strftime
将month
提取为days
,然后将groupby
与汇总min
,max
一起使用:
#if neccessary convert to datetimes if MM-DD-YYYY
#df['Date'] = pd.to_datetime(df['Date'])
dfboth = df['milesrun'].groupby(df['Date'].dt.strftime('%m-%d')).agg(['min','max'])
print (dfboth)
min max
Date
01-01 13 24
或者:
dfmin = df['milesrun'].groupby(df['Date'].dt.strftime('%m-%d')).min()
dfmax = df['milesrun'].groupby(df['Date'].dt.strftime('%m-%d')).max()