创建一个列,该列是从另一列中提取的特定日期之后的一组列中日期数的总和
Create a column that is a sum of the number of dates in a group of columns that come after a particular date, pulled from another column
我有一个名为的数据框,看起来与此类似(除了 'Visit' 列的数量增加到 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
确定日期后
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
我有一个名为的数据框,看起来与此类似(除了 'Visit' 列的数量增加到 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
确定日期后
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