我有一个商店位置的数据集,其中包含事件日期(所有库存从该商店出售的日期)和已售商品的数量,如下所示:
df['week'] = df.sell_date.dt.week
df.pivot_table(values = ['quantityA', 'quantityB'], index = 'week', aggfunc = [np.sum, len])
我想创建一个新的时间序列数据框,其中包含每周一次的摘要(或每日;或每个自定义date_range对象)来自这些数量A和B的范围。
我可以根据这些来生成周数和总销售额,如此......
period_range = pd.date_range(start = start, end = end, freq='7D')
但我不知道如何做到以下几点:
specialist
),答案 0 :(得分:2)
我不确定这是否是您想要的,但您可以尝试
df.set_index('sell_date', inplace=True)
resampled = df.resample('7D', [sum, len])
结果索引可能不是您想要的,因为它从最早的日期时间开始正确到纳秒。您可以通过执行
替换当时00:00:00的日期时间resampled.index = pd.to_datetime(resampled.index.date)
编辑:
你实际上可以做到
resampled = df.resample('W', [sum, len])
结果索引正是您想要的。有趣的是,传递'D'
也会给出你期望的索引,但是传递多个像'2D'
的结果会产生'丑陋'的索引,也就是说,从最早的正确到纳秒开始并且准确地增加倍数2天。我想这个教训是尽可能坚持像'D','W','M'这样的单曲。