df - это CSV-файл, который содержит ship_date, order_date и cumulative_ordered.cumulative_ordered - сумма заказов, добавляемых за каждый день до даты ship_date.До каждой даты ship_date существует 30 дней, и эти дни учитываются только для одной даты ship_date.после ship_date 2018-07-01, затем следующая ship_date будет 2018-08-01 с той же процедурой.
Моя проблема в том, что я не могу получить оставшиеся дни (см. последний вывод кода ниже), когда я вычисляюсреднее процентное значение cumulative_ordered для каждого из этих 30 дней назад.
У меня есть следующий код, который дает мне days_remaining из файла csv с несколькими различными ship_date и order_date, которые ведут обратный отсчет до каждой отдельной ship_date.
df['days_remaining'] = pd.to_datetime(df['ship_date']).sub\
(pd.to_datetime(df['order_date'])).dt.days
df['difference'] = df['ship_date'] - df['order_date']
df.head()
вывод:
ship_date Order_date cumulative_ordered days_remaining difference
2018-07-01 2018-06-01 7 30 30 days
2018-07-01 2018-06-02 10 29 29 days
2018-07-01 2018-06-03 15 28 28 days
2018-07-01 2018-06-04 30 28 27 days
2018-07-01 2018-06-05 41 28 26 days
Затем я пытаюсь найти общее количество заказанных за каждый день до ship_date
m = df.groupby("difference").mean()
m.head()
, что дает мне такой вывод:
cumulative ordered days_remaining
difference
0 days 352.458124 0.0
1 days 291.234747 1.0
2 days 244.122137 2.0
3 days 201.178765 3.0
4 days 190.153641 4.0
Я сталкиваюсь с проблемой, когда пытаюсь найти среднее кумулятивное количество заказов за каждый день в процентах, заполняемых из выходных данных cumulative_ordered за 0 дней выше, запустив этот код:
v = m/m[m.index.days == 0].iloc[0]
v.head()
cumulative_ordered days_remaining
difference
0 days 1.000000 NaN
1 days 0.891324 inf
2 days 0.812534 inf
3 days 0.752339 inf
4 days 0.673745 inf
days_remaining изменяется на NaN и inf .. Как я могу сохранить его, чтобы он по-прежнему давал мне целые числа?