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