假设有一个名为transactions的数据集,有以下列:user_id, transaction_date, amount。
我们可以使用pandas库来解决这个问题。
首先,我们需要将transaction_date列转换为datetime格式,并设置它作为索引:
import pandas as pd
transactions['transaction_date'] = pd.to_datetime(transactions['transaction_date'])
transactions.set_index('transaction_date', inplace=True)
然后,我们使用resample函数将数据按天进行重采样,并使用agg函数计算每天的用户数量和交易数量:
x = 5 # X笔交易
y = 7 # Y天
result = transactions.groupby('user_id').resample('D')['amount'].count()
result = result[result >= x]
result = result.groupby(level=0).agg({'count': 'count', 'sum': 'sum'})
result = result[result['count'] >= y]
这将返回一个pandas DataFrame,其中包含每个日期内有超过X笔交易的用户数量。每一行表示一个日期,包括日期、用户数量和总交易数量。
如果想改为每月统计,只需将resample参数修改为'M',代表按月统计。
上一篇:按日期统计细胞数
下一篇:按日期向量对xts列进行子集化