Groupby +有条件的从另一列创建新的

编程入门 行业动态 更新时间:2024-10-23 11:20:23
本文介绍了Groupby +有条件的从另一列创建新的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试在新列( 2nd_visit_date)中捕获用户的 visit_num == 2的日期

I am trying to capture the date of the "visit_num==2" of "users" in a new column ("2nd_visit_date")

下面是代码(包括我要创建的新列)

Here's the code (including the new column I want to create)

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

我尝试了以下代码,但没有用:

I tried the following code, but it did not work:

df["2nd_visit_date"] = df.groupby("user")["date"].transform(df['visit_num']==2)

任何帮助将不胜感激。谢谢。

Any help will be very much appreciated. Thanks.

推荐答案

让我们说这是您原始的 df :

Let say this is your original df:

df user date visit_num 0 1 1995-09-01 1 1 1 1995-09-02 2 2 2 1995-10-03 1 3 2 1995-10-04 2 4 2 1995-10-05 3 5 3 1995-11-07 1 6 3 1995-11-08 2 7 3 1995-11-09 3 8 3 1995-11-10 4 9 3 1995-11-15 5 10 4 1995-12-18 1 11 4 1995-12-20 2

您可以先为第二次访问创建一个数据框(并更改列名):

You can first create a dataframe for second visits (and change column name):

df_2 = df[df.visit_num==2][['user', 'date']] df_2.columns = ['user', '2nd_visit_date'] df_2 user 2nd_visit_date 1 1 1995-09-02 3 2 1995-10-04 6 3 1995-11-08 11 4 1995-12-20

并将其与原始 df 合并p>

And merge it with your original df

pd.merge(df, df_2, on='user', how='left') user date visit_num 2nd_visit_date 0 1 1995-09-01 1 1995-09-02 1 1 1995-09-02 2 1995-09-02 2 2 1995-10-03 1 1995-10-04 3 2 1995-10-04 2 1995-10-04 4 2 1995-10-05 3 1995-10-04 5 3 1995-11-07 1 1995-11-08 6 3 1995-11-08 2 1995-11-08 7 3 1995-11-09 3 1995-11-08 8 3 1995-11-10 4 1995-11-08 9 3 1995-11-15 5 1995-11-08 10 4 1995-12-18 1 1995-12-20 11 4 1995-12-20 2 1995-12-20

更多推荐

Groupby +有条件的从另一列创建新的

本文发布于:2023-10-23 05:59:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1519997.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:有条件   Groupby

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!