回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我希望能够将我的数据按用户分组,然后按特定的日期周期分组—以获得计数和平均值,并让它们在每个日期周期的新列中创建。你知道吗</p>
<p>我的数据看起来像:</p>
<pre><code>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']})
</code></pre>
<p>所以,我通常是这样做的:</p>
<pre><code>df.groupby(['USER_ID',pd.Grouper(key='DATE', freq='W')])['ACTIVITY_CATEGORY'].count()
</code></pre>
<p>但我现在想要的是能在一周内拿到。基本上能够得到更像:</p>
<p><a href="https://i.stack.imgur.com/5e0PT.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/5e0PT.png" alt="enter image description here"/></a></p>
<p>我已经阅读了Grouper中不同分组方式的文档,以及可以使用的偏移量。还是找不到这样的东西。你知道吗</p>
<p>使用for循环和timedelta并从最近一天减去7天是一种相当麻烦的方法,但在大型数据集上效率非常低。想找一个更像Python的方法。你知道吗</p>