回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个dataframe列,指定用户执行活动的次数。
例如</p>
<pre><code>>>> df['ActivityCount']
Users ActivityCount
User0 220
User1 190
User2 105
User3 109
User4 271
User5 265
...
User95 64
User96 15
User97 168
User98 251
User99 278
Name: ActivityCount, Length: 100, dtype: int32
>>> activities = sorted(df['ActivityCount'].unique())
[9, 15, 16, 17, 20, 23, 25, 26, 28, 31, 33, 34, 36, 38, 39, 43, 49, 57, 59, 64, 65, 71, 76, 77, 78,
83, 88, 94, 95, 100, 105, 109, 110, 111, 115, 116, 117, 120, 132, 137, 138, 139, 140, 141, 144, 145, 148, 153, 155, 157, 162, 168, 177, 180, 182, 186, 190, 192, 194, 197, 203, 212, 213, 220, 223, 231, 232, 238, 240, 244, 247, 251, 255, 258, 260, 265, 268, 269, 271, 272, 276, 278, 282, 283, 285, 290]
</code></pre>
<p>根据他们的活动计数,我必须将用户分为5个不同的类别,例如<code>A, B, C, D</code>和<code>E</code>。
活动计数范围因时间而异。在上面的例子中,它大约在<code>(9-290)</code>(系列中最低和最高的)之间,它可以是<code>(5-500)</code>或<code>(5 to 30)</code>。
在上面的示例中,我可以将活动的最大数量除以5,并将每个用户分类为58<code>(from 290/5)</code>的范围,如<code>Range A: 0-58</code>、<code>Range B: 59-116</code>、<code>Range C: 117-174</code>等</p>
<p>有没有其他方法可以使用pandas或numpy来实现这一点,这样我就可以直接在给定的类别中对列进行分类?
预期产量:-</p>
<pre><code>>>> df
Users ActivityCount Category/Range
User0 220 D
User1 190 D
User2 105 B
User3 109 B
User4 271 E
User5 265 E
...
User95 64 B
User96 15 A
User97 168 C
User98 251 E
User99 278 E
</code></pre>