我希望能够将我的数据按用户分组,然后按特定的日期周期分组—以获得计数和平均值,并让它们在每个日期周期的新列中创建。你知道吗
我的数据看起来像:
df = pd.DataFrame({
"USER_ID": ["AA1", "AB1", "AA3", "CD3", "AB4", "AA1", "AA1", "AA3", "AB4", "AB4"],
"ACTIVITY_CATEGORY": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
"DATE": ['2018-09-19', '2018-09-13', '2018-09-06', '2018-09-18', '2018-09-15', '2018-09-19', '2018-09-16', '2018-09-06', '2018-09-04', '2018-09-04']})
所以,我通常是这样做的:
df.groupby(['USER_ID',pd.Grouper(key='DATE', freq='W')])['ACTIVITY_CATEGORY'].count()
但我现在想要的是能在一周内拿到。基本上能够得到更像:
我已经阅读了Grouper中不同分组方式的文档,以及可以使用的偏移量。还是找不到这样的东西。你知道吗
使用for循环和timedelta并从最近一天减去7天是一种相当麻烦的方法,但在大型数据集上效率非常低。想找一个更像Python的方法。你知道吗
这和你想要达到的目标相似吗
输出:
IIUC,你可以试试这个:
如果出现第1周,则应自动填充。你知道吗
相关问题 更多 >
编程相关推荐