用pandas计算某个月的新用户人数,现有近两年的销售数据:数据有两列,用户名和购买时间,现在要根据该数据计算某月用户中多少是新用户,定义某个用户在365天未购买过该商品为新用户,详细代码要如何写?注:新用户定义要精确到每个用户,不能用时间范围计算
时间: 2023-03-29 20:00:24 浏览: 118
可以使用以下代码计算某个月的新用户人数:
```python
import pandas as pd
from datetime import datetime, timedelta
# 读取数据
data = pd.read_csv('sales_data.csv')
# 将购买时间转换为日期格式
data['购买时间'] = pd.to_datetime(data['购买时间'])
# 计算某个月的起始日期和结束日期
month = '2022-01'
start_date = datetime.strptime(month, '%Y-%m')
end_date = start_date + timedelta(days=31)
# 筛选出在该月购买的用户
month_data = data[(data['购买时间'] >= start_date) & (data['购买时间'] < end_date)]
# 找出在该月购买的新用户
new_users = []
for user in month_data['用户名'].unique():
user_data = month_data[month_data['用户名'] == user]
last_purchase_date = user_data['购买时间'].max()
if (end_date - last_purchase_date).days > 365:
new_users.append(user)
# 输出新用户人数
print(len(new_users))
```
其中,`sales_data.csv` 是存储销售数据的文件名,需要根据实际情况修改。
阅读全文