Моя цель - выбрать строки, в которых сумма столбца «значение» составляет> 1000, учитывая совокупное значение для каждого месяца. Например, client1 достигает этого значения за 3 месяца, поскольку сумма значений за первые 3 месяца равна 1160, как показано в target_data. Мои намеки касались игры с группой, мне было интересно также использовать фильтр или сдвиг, но я сложен. В "target_data" я показываю желаемый результат
raw_data = {'client': ['client1','client1','client1','client1','client2','client2','client2','client2','client2'],
'month': [1,2,3,4,1,2,3,4,5],
'value': [10,350,800,400,300,300,300,300,10]}
df = pd.DataFrame(raw_data, columns = ['client','month','value'])
df
target_data = {'client': ['client1','client2'],
'month': [3,4],
'value': [800,300],
'cumulative': [1160,1200]}
df2 = pd.DataFrame(target_data, columns = ['client','month','value','cumulative'])
df2
df_grouped = df.groupby(['client'])['value'].sum().reset_index(name='sum_value')
df_grouped.loc[df_grouped['sum_value'] > 1000]