如何在其他数据框上添加带有条件的列?

洲来

动机:我想检查客户自首次购买以来的2个月内是否购买了任何东西。(保留)

资源:我有2个表:

  1. 购买日期,ID和购买代码
  2. 他购买的ID和第一天

样本数据:

Table1
    Date          ID    Purchase_code
 2019-01-01        1    AQT1
 2019-01-02        1    TRR1
 2019-03-01        1    QTD1

 2019-02-01        2    IGJ5
 2019-02-05        2    ILW2
 2019-02-20        2    WET2
 2019-02-28        2    POY6

Table 2
ID   First_Buy_Date
1     2019-01-01 
2     2019-02-01 

预期结果:

ID       First_login_date      Retention    Frequency_buy_at_first_month
 1         2019-01-01              1                      2
 2         2019-02-01              0                      4
耶斯列尔

如有必要,首先将列转换为日期时间,然后添加“第一天”,然后DataFrame.merge通过与Series.leSeries.gt转换为整数来创建新列

df1['Date'] = pd.to_datetime(df1['Date'])
df2['First_Buy_Date'] = pd.to_datetime(df2['First_Buy_Date'])

df = df1.merge(df2, on='ID', how='left')
df['Retention'] = (df['First_Buy_Date'].add(pd.DateOffset(months=2))
                                       .le(df['Date'])
                                       .astype(int))
df['Frequency_buy_at_first_month'] = (df['First_Buy_Date'].add(pd.DateOffset(months=1))
                                                          .gt(df['Date'])
                                                          .astype(int))

通过GroupBy.aggmax(如果仅需要01输出)和sum计数值的最后合计

df1 = (df.groupby(['ID','First_Buy_Date'], as_index=False)
         .agg({'Retention':'max', 'Frequency_buy_at_first_month':'sum'}))
print (df1)
   ID First_Buy_Date  Retention  Frequency_buy_at_first_month
0   1     2019-01-01          1                             2
1   2     2019-02-01          0                             4

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有条件地在其他变量的同一列中添加带有变量的行

在其他列上有条件地向数据框列添加常量

如何在 Sql Server 中添加带有条件的默认约束?

如何在 MongoDB 中添加带有条件的子文档字段?

VBA /宏添加带有条件的另一个列

如何在剃刀MVC 4中添加带有条件值的第二个CSS类

如何根据 julia 中的其他列值有条件地在数据框中创建新列

有条件地连接数据框的行,并根据条件处理其他列

如何删除其他表中带有条件的行(SQL)

如何根据R中其他列中的数据有条件地执行减法?

如何有条件地逐行比较数据并将不同的结果输出到其他列?

添加带有条件着色的水平线

熊猫:添加带有其他列计算的列

在其他列上有条件地从 hive 表中获取最新的列值

如何在Java中有条件地调用其他构造函数?

如何在systemd config中有条件地运行其他文件?

如果存在其他类,如何有条件地将CSS应用于类?

Excel公式-如何使用其他表格中的值有条件地填充列

如何在带有条件的字典中添加值?

如何在有条件的组件上有条件地添加道具?

获取在其他列上有条件的累积熊猫总和

SQL在其他行上有条件地显示

如何在数组中显示/获取带有条件的数据?

如何在Pandas的数据透视表上应用带有条件的聚合函数?

如何按带有条件的列设置我的数据框样式?

如何根据条件添加带有累进编号的列

如何根据python字典的键和值有条件地将数据添加到Excel文件中的列,同时保持其他列一致

如何在表单元格的边框上添加带有动画的CSS类?

如何在AEM中使用HTL有条件地添加数据属性?