针对网站中自然问题的更系统的代码

2024-10-01 17:40:13 发布

您现在位置:Python中文网/ 问答频道 /正文

编写一个基本代码(在groupbyby name)by forwhile...之后)并不难 下面的问题。有没有更系统的方法通过更高级的pythonpandasSQL命令来解决这个问题

在网站中,用户执行“进入”、“退出”和“购买”操作

df1 = pd.DataFrame({'name' : ['Bob' , 'Alice', 'Ali', 'Bob', '...'] ,
                   'action' : ['enter', 'enter', 'enter', 'purchase' , '...'],
                   'time' :[4, 10, 12, 18, '...']})

我们希望在“购买”旁边添加购买所需的时间:

df1['T'] = ['','','',14,'...']

更具体地说,每个用户的时间都独立于其他用户。 考虑一个特定的用户和他的行为:

action = ['enter' , 'exit' , 'enter' , 'purchase' , 'purchase',  'exit', 'enter', 'purchase', 'purchase', 'purchase', 'exit', 'enter']
time = [2 , 10, 32, 50, 60,    75, 100, 113,114,115,  140, 145  ]
df2 = pd.DataFrame({'action' : action, 'time' : time})

我们希望:

df2['T'] = ['' , '', '', 18,18, '' , '' , 10, 10 , 10, '','']

我们考虑每次购买的每次购买时的最后购买时间(可能只有一次),作为现场用户在场的切入点(因此我们将时间削减到[2,60]和[60115 ],并且忽略每个用户在他最后购买之后的行为)。我们从exitenter减去时间,就得到了时间36和30。然后我们将这段时间平均分配给连续购买(如果有)


Tags: 代码用户namedataframetime时间exitaction

热门问题