У меня есть следующий фрейм данных:
item = ['item1','item2','item3']
amount = [500,200,800]
feature_2020 = [18,32,34]
feature_2030 = [28,42,44]
feature_2040 = [38,52,54]
df = pd.DataFrame({'index':item,'amount':amount,'feature_2020': feature_2020,'feature_2030':feature_2030,'feature_2040':feature_2040})
df.index= df['index']
print(df)
amount feature_2020 feature_2030 feature_2040 index
index
item1 500 18 28 38 item1
item2 200 32 42 52 item2
item3 800 34 44 54 item3
Я хочу эффективно сделать следующее (я уже могу это сделать, но очень плохо):
- Для каждогоВ столбце Feature (Feature_2020, Feature_2030, Feature_2040) я хочу отфильтровать значения строго до 20, от 20 до 40 и от 40.
- После применения этого фильтра я хочу вычислить суммустолбец количества оставшихся предметов для каждой категории, отфильтрованной выше.
Ожидаемый результат:
inf20 = [500,1000,0]
supequal20_inf40 = [0,500,1000]
supequal40 = [0,500,1000]
index = ['inf20','supequal20_inf40','supequal40']
result = pd.DataFrame({'sum_feature_2020':inf20,'sum_feature_2030':supequal20_inf40,'sum_feature_2040': supequal40,'index':index})
result.index= result['index']
print(result)
sum_feature_2020 sum_feature_2030 sum_feature_2040
inf20 500 0 0
supequal20_inf40 1000 500 500
supequal40 0 1000 1000
Есть ли способ сделать эту фильтрацию и операцию эффективным способом?
Большое спасибо за вашу помощь,