我有一个包含年、月和分数的数据框。例如:
df = pd.DataFrame({'year' : [2020, 2020, 2021, 2021],
'month': [1, 2, 3, 4],
'score': [10,20,30,40]})
我想按年和每两个月分组。分组后的数据框应包含:年份、两个月(例如 1-2、3-4 等)和平均分数。
我在其他可以映射的答案中找到:
months = { '1' : 'B1',
'2' : 'B1',
'3' : 'B2',
'4' : 'B2',
'5' : 'B3',
'6' : 'B3',
'7' : 'B4',
'8' : 'B4',
'9' : 'B5',
'10' : 'B5',
'11' : 'B6',
'12' : 'B6' }
df['two_months'] = df['month'].astype(str).map(months)
然后我可以分组:
df(['year','two_months'])[['score']].mean()
问题是 thentwo_months
是一个字符串,我失去了对它进行排序的选项,就像对 datetime 对象所做的那样。我的问题:还有其他方法可以执行此操作吗?