Округление значения создает ошибки - PullRequest
0 голосов
/ 10 ноября 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  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.

Я начал со следующего:

count = 30
arr = [] 
for row in df.iterrows():
    if count == 0:
        count = 30
        continue
    if count >10:
        arr.append(round(0.4 * row.b_Count))
        count = count - 1
    if count <=10:
        arr.append(round(0.6 * row.b_Count))
        count = count - 1

df['ratio_count'] = arr

Новый столбец назначает отношение b_count к 60-40.

Теперь, чтобы достичь возрастающей тенденции:

def add_series(grp):
   n_rows = grp.shape[0]
   val = grp['new'].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 = df.groupby(['Date_1','ratio_count']).apply(add_series)

Я думал, что у меня это есть, но вот в чем проблема:

Некоторые значения отсутствуют, и это оправдано из-за округления.

Мой вопрослежит здесь:

Я не хочу получать потерю b_count при генерации индивидуального_счета.

Я сделал это:

df3.groupby('Date_1')['individual_count'].sum()

и обнаружил, что счет нето же самое при суммировании.

enter image description here

Я хочу найти пропущенный счетчик для каждой даты и добавить его к последней записи для этой конкретной даты_1 внабор данных. Например - я получаю 147 как b_count после добавления на 01/09/2019, я хочу добавить 1 киндивидуальный_счет последней записи для его создания 148.

Может ли кто-нибудь помочь с тем же.

Спасибо

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