Генерация информационного кадра с соотношением в тренде - PullRequest
1 голос
/ 08 ноября 2019

У меня есть фрейм данных:

DF

Date_1      Date_2      b_count
01/09/2019  02/08/2019  148
01/09/2019  03/08/2019  148
01/09/2019  04/08/2019  148
01/09/2019  05/08/2019  148
01/09/2019  06/08/2019  148
01/09/2019  07/08/2019  148
01/09/2019  08/08/2019  148
01/09/2019  09/08/2019  148
01/09/2019  10/08/2019  148
01/09/2019  11/08/2019  148
01/09/2019  12/08/2019  148
01/09/2019  13/08/2019  148
01/09/2019  14/08/2019  148
01/09/2019  15/08/2019  148
01/09/2019  16/08/2019  148
01/09/2019  17/08/2019  148
01/09/2019  18/08/2019  148
01/09/2019  19/08/2019  148
01/09/2019  20/08/2019  148
01/09/2019  21/08/2019  148
01/09/2019  22/08/2019  148
01/09/2019  23/08/2019  148
01/09/2019  24/08/2019  148
01/09/2019  25/08/2019  148
01/09/2019  26/08/2019  148
01/09/2019  27/08/2019  148
01/09/2019  28/08/2019  148
01/09/2019  29/08/2019  148
01/09/2019  30/08/2019  148
01/09/2019  31/08/2019  148

Я хочу создать еще один столбец в dataframe Individual_count, который должен быть создан со значением b_count, т.е. 148 таким, что 60% отсчет за последние 10 дней, остальные 40% за оставшиеся дни. например - здесь date_1 повторяется 30 раз, 148 следует разделить на 30 записей, так что 60% подсчета приходится на последние 10 дат date_2 (в нашем случае с 22/08/2019 по 31/08/2019.

До сих пор мне удавалось достигнуть возрастающей тенденции, используя:

def add_series(grp):
   n_rows = grp.shape[0]
   val = grp['b_count'].min()
   s = np.exp(np.linspace(0,1,n_rows)) 
   s = np.round((s * val)/ np.sum(s))
   grp['individual_count'] = s
   return grp

df3 = joined_df.groupby('Date_1').apply(add_series)

Это обеспечивает мне возрастающую тенденцию в распределении Individual_count, однако я также хочу назначить 60-Коэффициент 40,

Таким образом, идея состоит в том, чтобы включить коэффициент 60-40 и соответственно использовать полный счет. Может ли кто-нибудь помочь с таким же. а затем в Date_2.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...