Нахождение среднего значения в равные дни с использованием панд - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть набор данных, где я пытаюсь получить среднее число оставшихся дней, которые равны. Пример:

 ship_date    Order_date   cumulative_ordered   days_remaining

 2018-07-01   2018-05-06     7                  56 days
 2018-07-01   2018-05-07     10                 55 days
 2018-07-01   2018-05-08     15                 54 days

Order_date будет вести обратный отсчет, пока не достигнет ship_date. к этому времени совокупный заказ равен общей сумме заказов до даты отгрузки. Затем новый ship_date и процесс повторяется. Я хочу видеть средний процент за каждый день вплоть до даты заказа. Например, если ship_date 2018-07-01 имеет в общей сложности 100 заказов, а ship_date 2018-08-01 имеет в общей сложности 200, то я хочу увидеть, какой процент в среднем был заказан за 54 дня до ship_date.

Спасибо.

1 Ответ

0 голосов
/ 20 ноября 2018

Вы можете получить среднее значение total_ordered за difference_in_days, используя groupby :

df.groupby("difference_in_days")['total_ordered'].mean()

Возвращает Серии со средним значением total_ordered для каждой группы строк снекоторые конкретные difference_in_days, например:

difference_in_days
2 days    10.5
56 days   50.22
...
Name: total_ordered, dtype: float64

Чтобы извлечь одно из средних значений из этой серии, необходимо присвоить его переменной и использовать индекс.Скажем, вы хотите получить среднее значение total_ordered для строк с difference_in_days, равным 56, вы должны сделать:

g = df.groupby("difference_in_days")['total_ordered'].mean()

# value is the average total_ordered for rows with 56 days of difference.
value = g[g.index.days == 56].iloc[0] 
...