首页 > 解决方案 > 如何使用一列按数据分组对另一列执行一些操作并分配新组熊猫

问题描述

我有一个数据框如下:

   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

谢谢

标签: pythonpandaspandas-groupby

解决方案


尝试以下操作:

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

grp_distance = grp_id.groupby(['distance_along_path'].grp_id['distance_along_path']==0

推荐阅读