Python 通过在数据帧中增加5的增量对编号进行分组

Python 通过在数据帧中增加5的增量对编号进行分组,python,list,pandas,Python,List,Pandas,我有一个数据框,列值如下: x1 x2 0 20 1 20 2 20 3 20 4 20 5 20 6 20 7 20 8 20 9 20 10 20 我想把x1中的元素按5的大小分组,就像组x1中的一样。x2在这种情况下不相关 x1 x2 group_x1 0 20 0 1 20 0 2 20 0 3 20 0 4 20 0 5 20 1 6 20 1 7 20 1 8 20 1 9 2

我有一个数据框,列值如下:

x1  x2 
0   20
1   20
2   20
3   20
4   20
5   20
6   20
7   20
8   20
9   20
10  20
我想把x1中的元素按5的大小分组,就像组x1中的一样。x2在这种情况下不相关

x1  x2 group_x1
0   20  0
1   20  0
2   20  0
3   20  0
4   20  0
5   20  1
6   20  1
7   20  1
8   20  1
9   20  1
10  20  1
因此,数字中介于0到4之间的值映射为0 从5到9的值映射为1


我尝试了pq.cut和groupby函数,但它不起作用。对于0到25000之间的值,需要使用它。这可以通过在相关列上使用
groupby
apply
来实现:

df = pd.DataFrame([[0], [1], [5], [6]], columns=['x1'])
df['x1_group'] = (df['x1'] / 5).astype(int)
groups = df.groupby('x1_group')['x1'].apply(list)
这将产生:

x1_group
0    [0, 1]
1    [5, 6]
在这种情况下,groups键为
group_x1
,对于每个组,只有
x1
值通过
apply
方法使用
list
进行处理。

尝试以下操作:

df['group_x1'] = df['x1'] // 5
IIUC


为了确保我理解所需的输出,在本例中,您需要一个包含
group_x1
索引值的序列,序列值是
x1
中匹配值的列表?例如:
0:[0,1,2,3,4]
1:[5,6,7,8,9]
yes@Elisha,这将应用于数字范围从0到25000的列表
df['group_x1']=np.arange(len(df))//5
df
Out[170]: 
    x1  x2  group_x1
0    0  20         0
1    1  20         0
2    2  20         0
3    3  20         0
4    4  20         0
5    5  20         1
6    6  20         1
7    7  20         1
8    8  20         1
9    9  20         1
10  10  20         2