将数据分组到存储箱

2024-04-28 17:13:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将以下数据帧df子集到大小为50的容器中:

    ID      FREQ
0   358081  6151
1   431511  952
2   410632  350
3   398149  220
4   177791  158
5   509179  151
6   485346  99
7   536655  50
8   389180  51
9   406622  45
10  410191  112

结果应该是:

FREQ_BIN    QTY_IDs
>200        3
150-200     2
100-150     1
50-100      3
<50         1

我该怎么做?我应该使用groupBy还是其他方法?你知道吗


Tags: 数据方法ididsdfbin容器子集
1条回答
网友
1楼 · 发布于 2024-04-28 17:13:13

你可以用^{}。你知道吗

df.groupby(pd.cut(df.FREQ, 
                  bins=[-np.inf, 50, 100, 150, 200, np.inf], 
                  right=False)
           ).size()

right=False确保我们按照您的输出建议采用半开区间,并且与^{}不同,我们需要在“无限端点”的容器中包含np.inf。你知道吗

演示

>>> df.groupby(pd.cut(df.FREQ, 
                      bins=[-np.inf, 50, 100, 150, 200, np.inf], 
                      right=False)
               ).size()

FREQ
[-inf, 50)    1
[50, 100)     3
[100, 150)    1
[150, 200)    2
[200, inf)    4
dtype: int64

相关问题 更多 >