gpt4 book ai didi

python - 获取用户列表以及他们从数据框中购买了多少

转载 作者:太空宇宙 更新时间:2023-11-04 08:25:05 25 4
gpt4 key购买 nike

我有一个包含如下用户数据的数据框:

|--user id--|--registration_date--|--voucher campaign--|--transaction id--|--price--|--purchase date--|
|--5433126--|-- 2015-05-23 --|-- tlp05 --|--68536116696879--|--18.00--|-- 2015-05-23--|
|--5433126--|-- 2015-05-23 --|-- tlp05 --|--68435132139899--|-- 7.00--|-- 2015-05-29--|
|--9865313--|-- 2015-06-01 --|-- zig15 --|--97889200016487--|--23.00--|-- 2015-06-15--|
|--7879463--|-- 2015-05-27 --|-- tlp10 --|-- NaN --|-- NaN --|-- NaN --|
...

我想创建一个额外的列,其中包含一个字符串,告诉我用户的整体购物事件:

Never 如果用户从未购买过任何东西;

Once 如果用户只买了一次东西;

Multiple 如果用户多次购买某物;

所以我想要的结果是这样的:

|--user id--|--registration_date--|--voucher campaign--|--transaction id--|--price--|--purchase date--|--activity--|
|--5433126--|-- 2015-05-23 --|-- tlp05 --|--68536116696879--|--18.00--|-- 2015-05-23--|--Multiple--|
|--5433126--|-- 2015-05-23 --|-- tlp05 --|--68435132139899--|-- 7.00--|-- 2015-05-29--|--Multiple--|
|--9865313--|-- 2015-06-01 --|-- zig15 --|--97889200016487--|--23.00--|-- 2015-06-15--|-- Once--|
|--7879463--|-- 2015-05-27 --|-- tlp10 --|-- NaN --|-- NaN --|-- NaN --|-- Never--|
...

什么是最有效的方法来实现这一点,而不是简单地遍历整个数据框,按用户 ID 拆分它并检查是否有任何购买?

最佳答案

您可以使用 GroupBy.transform 计算每组 purchase date 列的非缺失值数量和 sum 到 helper Series 并通过 numpy.select 设置新值:

s = df['purchase date'].notna().groupby(df['user id']).transform('sum')
df['activity'] = np.select([s == 0, s == 1], ['Never','Once'], default='Multiple')
print (df)
user id registration_date voucher campaign transaction id price \
0 5433126 2015-05-23 tlp05 6.853612e+13 18.0
1 5433126 2015-05-23 tlp05 6.843513e+13 7.0
2 9865313 2015-06-01 zig15 9.788920e+13 23.0
3 7879463 2015-05-27 tlp10 NaN NaN

purchase date activity
0 2015-05-23 Multiple
1 2015-05-29 Multiple
2 2015-06-15 Once
3 NaN Never

详细信息:

print (s)
0 2.0
1 2.0
2 1.0
3 0.0
Name: purchase date, dtype: float64

Series.map 类似的想法按字典并用 Series.fillna 替换不匹配的缺失值:

df['activity'] = s.map({0:'Never', 1:'Once'}).fillna('Multiple')
print (df)
user id registration_date voucher campaign transaction id price \
0 5433126 2015-05-23 tlp05 6.853612e+13 18.0
1 5433126 2015-05-23 tlp05 6.843513e+13 7.0
2 9865313 2015-06-01 zig15 9.788920e+13 23.0
3 7879463 2015-05-27 tlp10 NaN NaN

purchase date activity
0 2015-05-23 Multiple
1 2015-05-29 Multiple
2 2015-06-15 Once
3 NaN Never

关于python - 获取用户列表以及他们从数据框中购买了多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58074688/

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