如何使用一列数据进行分组,对另一列进行一些操作,并分配新的组pandas。

问题描述 投票:0回答:1

我有一个数据框架,如下所示。

   distance_along_path  ID
0       0                1
1       2.2              1
2       4.5              1
3       7.0              1
4       0                2
5       0                3
6       3.0              2
7       5.0              3
8       0                4
9       2.0              4
10      5.0              4
11      0                5
12      3.0              5 
11      7.0              4
12

我希望能够先按id的值和distance_along_path的值对这些行进行分组,每当id的沿途距离出现0的时候,就会创建一个新的组,直到下一个0出现,所有这些行都在A组下,如下图所示。

   distance_along_path  ID       group    
0       0                1        1
1       2.2              1        1 
2       4.5              1        1
3       7.0              1        1 
4       0                1        2
5       0                2        3
6       3.0              1        2
7       5.0              2        3
8       0                2        4
9       2.0              2        4
10      5.0              2        4
11      0                1        5 
12      3.0              1        5
13      7.0              1        5
14      0                1        6
15      0                2        7
16      3.0              1        6
17      5.0              2        7
18      1.0              2        7

谢谢你了

python pandas pandas-groupby
1个回答
-1
投票

试试下面的方法。

grp_id = df.groupby(['ID']).id.count().reset_index()

grp_distance = grp_id.groupby(['distance_along_path'].grp_id['distance_along_path']==0
© www.soinside.com 2019 - 2024. All rights reserved.