У меня есть следующий питон панд dataframe:Python Панды Рассчитать процент возврата в категорию
| Number of visits per year |
user id | 2013 | 2014 | 2015 | 2016 |
A 4 3 6 0
B 3 0 7 3
C 10 6 3 0
Я хочу, чтобы вычислить процент пользователей, которые вернулись в зависимости от их количества посещений. Извините, у меня пока нет кода, я не был уверен, как начать это.
Это конечный результат я ищу:
| Number of visits in the year |
Year | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
2014 7% 3% 4% 15% 6% 7% 18% 17% 3% 2%
2015 3% ....
2016
Так на основе вышеизложенного можно сказать, что 15% клиентов, которые посетили магазин в 4 раза в 2013 году, вернулся в магазин в 2014 году .
спасибо.
ОБНОВЛЕНИЕ: Это то, что я сделал, может быть, есть лучший путь через петлю?
За каждый год, у меня был файл CSV, как это:
user_id | NR_V
A 4
B 3
C 10
NR_V обозначает количество посещений.
Поэтому я загрузил каждый csv как свой собственный df, и у меня были df_2009, df_2010, ... до df_2016.
Для каждого файла я добавил столбец столбца с 0/1, если они совершают покупки в следующем году.
df_2009['shopped2010'] = np.where(df_2009['user_ID'].isin(df_2010['user_ID']), 1, 0)
Затем я поворачивал каждый информационный кадр.
pivot_2009 = pd.pivot_table(df_2009,index=["NR_V"],aggfunc={"NR_V":len, "shopped2010":np.sum})
Далее, для каждого dataframe я создал новый dataframe с колонкой вычисления процента по количеству посещений.
p_2009 = pd.DataFrame()
p_2009['%returned2010'] = (pivot_2009['shopped2010']/pivot_2009['NR_V'])*100
Наконец, я объединил все эти данные в один.
dfs = [p_2009, p_2010, p_2011, p_2012, p_2013, p_2014, p_2015 ]
final = pd.concat(dfs, axis=1)
Спасибо @piRSquared, но это только дает мне счет, а не проценты клиентов, которые вернулись в следующем году – jeangelj
Спасибо, я сейчас пытаюсь это решение. – jeangelj