Предположим, вы продаете продукт по всему миру и хотите открыть офис продаж в крупном городе.Ваше решение будет основываться исключительно на данных о продажах.
Это будут ваши (упрощенные) данные о продажах:
df={
'Product':'Chair',
'Country': ['USA','USA', 'China','China','China','China','India',
'India','India','India','India','India', 'India'],
'Region': ['USA_West','USA_East', 'China_West','China_East','China_South','China_South', 'India_North','India_North', 'India_North','India_West','India_West','India_East','India_South'],
'City': ['A','B', 'C','D','E', 'F', 'G','H','I', 'J','K', 'L', 'M'],
'Sales':[1000,1000, 1200,200,200, 200,500 ,350,350,100,700,50,50]
}
dff=pd.DataFrame.from_dict(df)
dff
На основе данных, которые вы должны указать для города "G".
Логика должна выглядеть следующим образом:
1) Найти страну с Максом (продажи)
2) в этой стране, найти регион с Максом (продажи)
3) в этом регионе найдите город с Максом (продажи)
Я пытался: groupby('Product', 'City').apply(lambda x: x.nlargest(1))
, но это не сработало, потому что это предложило бы город "C".Это город с самыми высокими продажами в мире, но Китай не является страной с самыми высокими продажами.
Мне, вероятно, придется пройти через несколько циклов группового.На основе результата отфильтруйте исходный фрейм данных и снова выполните групповую работу на следующем уровне.
Чтобы добавить сложности, вы продаете и другие продукты (не только «Стулья», но и другую мебель).Вам нужно было бы где-то хранить результаты каждой итерации (например, страну с Макс. (Объем продаж) на продукт), а затем использовать ее на следующей итерации группы.
У вас есть идеи, как я могу реализоватьэто в пандах / питоне?