基于Volvic购买记录的用户分群Python实现需求
解决方案
实现思路
核心逻辑是先定位所有曾购买Volvic的用户ID,再通过全集用户ID的差集得到从未购买的用户群体,具体步骤:
- 从交易数据中筛选品牌为
VOLVIC的记录,提取去重后的用户ID - 获取数据集中所有去重的用户ID
- 用全集用户ID减去已购买Volvic的用户ID,得到从未购买的用户
Python代码实现
假设输入数据为pandas DataFrame格式,代码如下:
import pandas as pd def split_users_by_volvic_purchase(df): # 获取曾购买Volvic的用户ID(去重) volvic_buyers = df[df['Brand'] == 'VOLVIC']['User_ID'].unique() # 获取所有用户ID(去重) all_users = df['User_ID'].unique() # 计算从未购买Volvic的用户ID non_volvic_buyers = [user for user in all_users if user not in volvic_buyers] # 整理输出结果 result = { '从未购买Volvic的用户': pd.DataFrame({'User_ID': non_volvic_buyers}), '曾购买Volvic的用户': pd.DataFrame({'User_ID': volvic_buyers}) } return result # 示例使用(读取本地交易数据文件) # df = pd.read_csv('transaction_records.csv') # user_groups = split_users_by_volvic_purchase(df) # 打印分组结果 # print("从未购买Volvic的用户:") # print(user_groups['从未购买Volvic的用户'].to_markdown(index=False)) # print("\n曾购买Volvic的用户:") # print(user_groups['曾购买Volvic的用户'].to_markdown(index=False))
示例输出
从未购买Volvic的用户:
| User_ID |
|---|
| 4567890 |
曾购买Volvic的用户:
| User_ID |
|---|
| 1234567 |
| 6543210 |
内容的提问来源于stack exchange,提问作者Shrouq
相关产品推荐
相关产品推荐

