【发布时间】:2020-07-07 06:24:20
【问题描述】:
我正在尝试在新列(“2nd_visit_date”)中捕获“users”的“visit_num==2”的日期
这是代码(包括我要创建的新列)
df=pd.DataFrame({'user':[1,1,2,2,2,3,3,3,3,3,4,4],
'date':['1995-09-01','1995-09-02','1995-10-03','1995-10-04','1995-10-05','1995-11-07','1995-11-08','1995-11-09','1995-11-10','1995-11-15','1995-12-18','1995-12-20'],
'visit_num':[1,2,1,2,3,1,2,3,4,5,1,2],
'2nd_visit_date':['1995-09-02','1995-09-02','1995-10-04','1995-10-04','1995-10-04','1995-11-08','1995-11-08','1995-11-08','1995-11-08','1995-11-08','1995-12-20','1995-12-20']})
所以我得到:
user date visit_num 2nd_visit_date
1 1995-09-01 1 1995-09-02
1 1995-09-02 2 1995-09-02
2 1995-10-03 1 1995-10-04
2 1995-10-04 2 1995-10-04
2 1995-10-05 3 1995-10-04
3 1995-11-07 1 1995-11-08
3 1995-11-08 2 1995-11-08
3 1995-11-09 3 1995-11-08
3 1995-11-10 4 1995-11-08
3 1995-11-15 5 1995-11-08
4 1995-12-18 1 1995-12-20
4 1995-12-20 2 1995-12-20
我尝试了以下代码,但没有成功:
df["2nd_visit_date"] = df.groupby("user")["date"].transform(df['visit_num']==2)
任何帮助将不胜感激。谢谢。
【问题讨论】:
标签: python conditional-statements pandas-groupby