我有一个与此相似的数据框(除了“访问”列的数量增加到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
答案 0 :(得分:4)
确定日期之后
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