Я хотел бы вычислить среднее значение для каждого идентификатора, используя groupby
и mean
.Тем не менее, мне нужны только строки, где Date
находится между годами 2016-01-01
и 2017-12-31
.
d = {'ID': ['STCK123', 'STCK123', 'STCK123'], 'Amount': [250, 400, 350],
'Date': ['2016-01-20', '2017-09-25', '2018-05-15']}
data = pd.DataFrame(data=d)
data = data[['ID', 'Amount', 'Date']]
data['Date'] = pd.to_datetime(data['Date'])
Это дает следующее df:
ID Amount Date
STCK123 250 2016-01-20
STCK123 400 2017-09-25
STCK123 350 2018-05-15
Когда я использую:
data.groupby(['ID'])['Amount'].agg('mean')
Учитывает все строки, что приводит к среднему значению 333.3
.Как я могу исключить строки, где Date
равно 2018 (получая среднее значение (250+400)/2=325
)?