У меня есть фрейм данных pandas, на котором я рассчитываю скользящее среднее по нескольким идентификаторам.
df:
╔════╦═══════╗
║ id ║ value ║
╠════╬═══════╣
║ 1 ║ 2 ║
║ 1 ║ 5 ║
║ 1 ║ 1 ║
║ 2 ║ 4 ║
║ 2 ║ 1 ║
║ 2 ║ 5 ║
║ 2 ║ 3 ║
║ 3 ║ 6 ║
║ 3 ║ 5 ║
╚════╩═══════╝
Current Resulting df:
╔════╦═══════╦═════════╗
║ id ║ value ║ average ║
╠════╬═══════╬═════════╣
║ 1 ║ 2 ║ ║
║ 1 ║ 5 ║ 3.5 ║
║ 1 ║ 1 ║ 3 ║
║ 2 ║ 4 ║ 2.5 ║
║ 2 ║ 1 ║ 2.5 ║
║ 2 ║ 5 ║ 3 ║
║ 2 ║ 3 ║ 4 ║
║ 3 ║ 6 ║ 4.5 ║
║ 3 ║ 5 ║ 5.5 ║
╚════╩═══════╩═════════╝
Expected Resulting df:
╔════╦═══════╦═════════╗
║ id ║ value ║ average ║
╠════╬═══════╬═════════╣
║ 1 ║ 2 ║ ║
║ 1 ║ 5 ║ 3.5 ║
║ 1 ║ 1 ║ 3 ║
║ 2 ║ 4 ║ ║
║ 2 ║ 1 ║ 2.5 ║
║ 2 ║ 5 ║ 3 ║
║ 2 ║ 3 ║ 4 ║
║ 3 ║ 6 ║ ║
║ 3 ║ 5 ║ 5.5 ║
╚════╩═══════╩═════════╝
Прямо сейчас мой код не учитывает изменение идентификатора, поэтому он по-прежнему будет принимать среднее значение из последних двух значений. Есть ли в любом случае принять во внимание изменение в id.
Мой текущий код df['value'] = df['value'].df(window = 2, min_periods = 1).mean()
Любая помощь будет высоко ценится