Создайте столбец, представляющий собой сумму числа дат в группе столбцов, которые идут после определенной даты, извлеченной из другого столбца. - PullRequest
1 голос
/ 17 апреля 2019

У меня есть датафрейм, который выглядит примерно так (за исключением того, что количество столбцов 'Посетить' достигает Visit_84, а есть несколько сотен клиентов - я упростил его здесь)

Client    Visit_1    Visit_2    Visit_3    Visit_4    ident_date
Client_1  2018-01-01 2018-01-20 2018-02-10 2018-02-20 2018-01-31
Client_2  2018-01-10 2018-01-30 2018-02-10 2018-03-20 2018-02-31
Client_3  2018-01-20 2018-04-01 2018-04-10 2018-04-20 2018-03-31
Client_4  2018-01-30 2018-03-01 2018-03-10 2018-04-25 2018-04-31

Я хочу создать новый столбец с именем vis_sum, который выдает сумму всех посещений для каждого клиента после ident_date.Результирующий кадр данных должен выглядеть следующим образом:

Client    Visit_1    Visit_2    Visit_3    Visit_4    ident_date vis_sum
Client_1  2018-01-01 2018-01-20 2018-02-10 2018-02-20 2018-01-31 2
Client_2  2018-01-10 2018-01-30 2018-02-10 2018-03-20 2018-02-31 1
Client_3  2018-01-20 2018-04-01 2018-04-10 2018-04-20 2018-03-31 3
Client_4  2018-01-30 2018-03-01 2018-03-10 2018-04-25 2018-04-31 0

1 Ответ

4 голосов
/ 17 апреля 2019

После исправления вашей даты

df.set_index('Client',inplace=True)
#df=df.apply(pd.to_datetime)

df['new']=df.gt(df.ident_date,axis=0).sum(1)
df
Out[763]: 
            Visit_1    Visit_2    Visit_3    Visit_4 ident_date  new
Client                                                              
Client_1 2018-01-01 2018-01-20 2018-02-10 2018-02-20 2018-01-31    2
Client_2 2018-01-10 2018-01-30 2018-02-10 2018-03-20 2018-02-28    1
Client_3 2018-01-20 2018-04-01 2018-04-10 2018-04-20 2018-03-31    3
Client_4 2018-01-30 2018-03-01 2018-03-10 2018-04-25 2018-04-30    0
...