为了账号安全,请及时绑定邮箱和手机立即绑定

通过将条件语句应用于 dtypes 日期时间和整数的多个其他列来创建列

通过将条件语句应用于 dtypes 日期时间和整数的多个其他列来创建列

jeck猫 2021-09-25 22:00:06
我有一个df类似于此的数据框(除了访问次数高达 74 并且有数百个客户端 - 我在此处对其进行了简化)。Client    Visit_1     Visit_2     Visit_3     Visit_4     Visit_5     Eligible  Active     Client_1  2016-05-10  2016-05-25  2016-06-10  2016-06-25  2016-07-10  0         0  Client_2  2017-05-10  2017-05-25  2017-06-10  2017-06-25  2017-07-10  0         0  Client_3  2018-09-10  2018-09-26  2018-10-10  2018-10-26  2018-11-10  1         0  Client_4  2018-10-10  2018-10-26  2018-11-10  2018-11-26  2018-12-10  1         1  我想创建一个名为Visit in Window0 和 1 两个值的新列。Visit in Window如果客户端是Eligible(Eligible列中的“1”值)并且如果客户端是Active(列中的“1”值),我想设置为等于 1 Activecolumn) 并且如果从to的 5 列中的任何一列包含介于和之间的日期。Visit_1Visit_52018-10-252018-12-15所以,我想最终得到一个如下所示的数据框:Client    Visit_1     Visit_2     Visit_3     Visit_4     Visit_5     Eligible  Active  Visit_in_Window    Client_1  2016-05-10  2016-05-25  2016-06-10  2016-06-25  2016-07-10  0         0       0  Client_2  2017-05-10  2017-05-25  2017-06-10  2017-06-25  2017-07-10  0         0       0  Client_3  2018-09-10  2018-09-26  2018-10-10  2018-10-26  2018-11-10  1         0       0  Client_4  2018-10-10  2018-10-26  2018-11-10  2018-11-26  2018-12-10  1         1       1  我可以使用以下代码为一列执行此操作df['Visit_in_Window'] = 0df.loc[((df.Eligible == 1) & (df.Active == 1) &        (df.Visit_1 > '2018-10-24') &         (df.Visit_1 < '2018-12-16')), 'Visit_in_Window'] = 1但是,我不知道如何同时对多个列执行此操作。任何人都可以帮忙吗?
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信