要计算按周显示的滚动的过去30天窗口中独立客户的总数,可以使用以下代码示例:
from datetime import datetime, timedelta
import pandas as pd
# 创建示例数据
data = {'date': ['2022-10-01', '2022-10-02', '2022-10-03', '2022-10-04', '2022-10-05', '2022-10-06', '2022-10-07',
'2022-10-08', '2022-10-09', '2022-10-10', '2022-10-11', '2022-10-12', '2022-10-13', '2022-10-14',
'2022-10-15', '2022-10-16', '2022-10-17', '2022-10-18', '2022-10-19', '2022-10-20', '2022-10-21',
'2022-10-22', '2022-10-23', '2022-10-24', '2022-10-25', '2022-10-26', '2022-10-27', '2022-10-28',
'2022-10-29', '2022-10-30'],
'customer_id': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
}
df = pd.DataFrame(data)
# 将日期列转换为日期时间类型
df['date'] = pd.to_datetime(df['date'])
# 获取当前日期
current_date = datetime.now()
# 计算过去30天的起始日期
start_date = current_date - timedelta(days=30)
# 筛选出过去30天的数据
filtered_df = df[df['date'] >= start_date]
# 按周显示独立客户数量
weekly_customers = filtered_df.groupby(pd.Grouper(key='date', freq='W-MON'))['customer_id'].nunique()
print(weekly_customers)
这段代码首先创建了一个包含日期和客户ID的示例数据框。然后,它将日期列转换为日期时间类型,并获取当前日期。接下来,它计算过去30天的起始日期,并筛选出过去30天的数据。最后,它使用groupby
和nunique
函数按周对独立客户ID进行计数。
输出将显示按周分组的独立客户数量。请注意,这里的示例数据只包含了30天的数据,所以只会显示一个周的结果。在实际应用中,如果有更多的数据,将会显示更多的周的结果。
上一篇:按周统计首次订阅用户数
下一篇:按周显示数据,带有周数。