gpt4 book ai didi

python - 按天计算跳出率

转载 作者:行者123 更新时间:2023-12-01 09:22:11 24 4
gpt4 key购买 nike

这似乎是一项非常简单的任务,但我已经为此苦苦挣扎了一段时间。

我想计算每天的(PageView 的 session 数==1)/( session 总数),示例数据如下

session_df

Date/Timestamp  Session ID  PageViews
2/14/2016 a 1
2/14/2016 b 5
2/14/2016 c 8
3/23/2016 d 1
3/23/2016 e 1
3/23/2016 f 2

和预期输出:

Date/Timestamp  BounceRate
2/14/2016 0.333333333
3/23/2016 0.666666667

我尝试首先根据PageViews数量添加一个Bounced?列,然后分组并计算百分比,然后我需要过滤掉bounced?==False这非常麻烦。如果有人能提出更好的方法来做到这一点,那就太好了!

sessions_df['Bounced?'] = sessions_df['PageViews']>1
dt = pd.DatetimeIndex(sessions_df['Date/Timestamp'])
daily_session_bounce_rate = sessions_df.groupby([dt.date, 'Bounced?']).agg({'Session ID':'count'})

daily_session_bounce_rate = daily_session_bounce_rate.groupby(level=0).apply(lambda x: x / float(x.sum()))
daily_session_bounce_rate
# this is my output
Bounced? Session ID
2016-01-01 False 0.459893
True 0.540107


#filter data
daily_session_bounce_rate.loc[daily_session_bounce_rate['Bounced?']==True,['level_0','Session ID']]

最佳答案

您不需要定义单独的Bounced? 列。获取 PageViews==1 的分组行的 count 并除以该日期的所有行数以获得分数

daily_session_bounce_rate = \
df[df['PageViews']==1].groupby('Date/Timestamp').agg({'Session ID':'count'}) /\
df.groupby('Date/Timestamp').agg({'Session ID':'count'})

关于python - 按天计算跳出率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50729892/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com