это можно сделать, просто используя индекс как способ группировки строк
df['bins'] = df.index // n
и затем собираем группу на «мусорное ведро». чтобы поместить это в более чистую функцию вот код
import pandas as pd
df = pd.DataFrame({'A':[1,2,3,3,4,4,4],'B':[1,2,3,4,5,6,7]})
def n_average(df, n):
df['bin'] = df.index // n
grouped_df = df.groupby(['bin']).mean()
return grouped_df
n_average(df, 3)