Я хочу создать новый фрейм данных, сгруппированный по магазинам, который создает несколько новых столбцов сводок для каждого магазина.В приведенном ниже примере для каждого магазина я хочу создать четыре переменные.Переменные аналогичны sumif и countif в excel, но рассчитываются для каждой группы (магазина).
- Переменная, которая суммирует все доходы продукта выше, скажем, $ 50.
- Переменная, которая суммирует все доходы продукта ниже $ 50
- Переменная, которая подсчитывает количество продуктов с доходами выше $ 50
- Переменная, которая подсчитывает количество продуктов с доходами ниже$ 50.
Я пробовал различные формы групповой и агг функции.Я понимаю, что мне следует использовать лямбду, но я не уверен, как бы я использовал этот синтаксис для создания нескольких переменных одновременно.
import pandas as pd
import numpy as np
n = 20
df = pd.DataFrame({'Store': np.random.choice(['Store_1', 'Store_2'], n),
'Revenue': (np.random.random(n) * 50 + 10).round(2)
})
df
Так что я могу легко рассчитать несколько сводных показателей дохода.Я не знаю, как создать собственные сводные показатели, такие как sumif или countif:
df2 = df.groupby('Store')['Revenue'].agg({'Rev_sum': 'sum', 'Rev_max': 'max'})
Для каждого хранилища (то есть store_1, store_2) я хочу четыре переменные в новом кадре данных, как описано выше (то есть Rev_sum_great_50 и т. Д....)