通过在熊猫数据框中递增5来对数字进行分组

时间:2018-08-18 15:01:29

标签: 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

我想像这样在group_x1中将x1中的元素分组为5个大小。 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到25,000之间的值

3 个答案:

答案 0 :(得分:1)

尝试一下:

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

答案 1 :(得分:1)

IIUC

import re
from functools import reduce
print(reduce(set.union, ({m.start() for m in re.finditer('1', s)} for s in sample)))

答案 2 :(得分:0)

这可以通过在相关列上使用groupbyapply来实现:

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]

在这种情况下,组密钥为group_x1,并且对于每个组,仅x1的值是通过list方法使用apply处理的。