Форум сайта python.su
Добрый день, меня зовут Александр! Мне нужен ваш совет.
У меня есть файл под названием milk_promo_sales.csv. В нем три столбца:
store_id - идентификатор магазина
period_id - период (неделя) наблюдения
sales_volume - объем продаж
Мне нужно найти:
1. Общее количество промопериодов (во всех магазинах)
2. Медиану продолжительности промопериода (количество недель)
3. Объем продаж по каждому промопериоду
4. Медиану количества промопериодов на один магазин
Я пробовал разные варианты, но ничего лучше придумать не удалось чем это:
import pandas as pd import numpy as np pd.read_csv(‘milk_promo_sales.csv’) df1 = df.groupby(‘period_id’).sum() import pandas as pd import numpy as np pd.read_csv(‘milk_promo_sales.csv’) df2 = df.groupby(‘period_id’).median() import pandas as pd import numpy as np pd.read_csv(‘milk_promo_sales.csv’) df3 = df.groupby(‘period_id’, ‘store_id’, ‘sales_volume’).sort_values() import pandas as pd import numpy as np pd.read_csv(‘milk_promo_sales.csv’) df4 = df.groupby(‘period_id’).sum() df5 = df.groupby(‘store_id’).sum() df6 = (df4/df5).median()
Отредактировано FishHook (Июль 20, 2021 14:42:50)
Офлайн
1234567890+342
store_id - идентификатор магазина
period_id - период (неделя) наблюдения
sales_volume - объем продаж
1234567890+342
1. Общее количество промопериодов (во всех магазинах)
2. Медиану продолжительности промопериода (количество недель)
3. Объем продаж по каждому промопериоду
4. Медиану количества промопериодов на один магазин
1234567890+342Просто посчитать количество строк в колонке period_id.
1. Общее количество промопериодов (во всех магазинах)
1234567890+342Отсортировать все значения из колонки period_id по возрастанию и взять среднее значение в списке или полусумму двух средних значений.
2. Медиану продолжительности промопериода (количество недель)
1234567890+342Для всех одинаковых значений из колонки period_id сложить значения из колонки sales_volume. Получится множество пар {(период, общая сумма продаж периода), (период, общая сумма продаж периода), … } .
3. Объем продаж по каждому промопериоду
1234567890+342Выбрать одинаковые значения в колонке store_id и посчитать их количество. Получится список таких количеств (3, 2, 5, … ). Затем отсортировать список количеств по возврастанию и взять среднее значение в списке или полусумму двух средних значений.
4. Медиану количества промопериодов на один магазин
1234567890+342Это и без pandas можно сделать.
Работа с файлом csv в pandas
1234567890+342Для этого надо библиотеку pandas изучать. Частью питона она не является.
Возможно, решение неправильное
Отредактировано py.user.next (Июль 21, 2021 02:17:25)
Офлайн
py.user.nextПремного благодарен за помощь
Офлайн