如何知道分配给个人p1的孩子人数?

时间:2019-03-20 09:56:30

标签: python pandas pandas-groupby data-analysis recursive-query

在下面的数据(df2)中,我需要知道每个p1有多少个(计数)孩子? 例如:在this picture中显示单个p1。 我需要以下形式的这张表的数据表。

p1_id | no. of p1|no. of p2| no. of p3 |
374971| 1        |3        | 4         |
....  |.....     |......   |.....      |

鉴于:没有一定的层次结构。例如,p1在他下面或在p3下可能还有另一个p1。而且可能有n个分支和节点。

Df2

   id   title   parent_id
0   11  p1          11
1   12  p1          11
2   13  p2          12
3   14  p2          12
4   15  p2          13
5   16  p2          13
6   17  p3          13

这个df2问题应该给出类似的输出

p1_id | no. of p1|no. of p2| no. of p3 |
11    | 1        |4        | 1         |
12    | 0        |2        | 0         |

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题, 您只想计算每个parent_id有多少个p1,p2,p3等。 在这种情况下,您可以使用两列的列表来执行.group:

df = pd.DataFrame.from_dict(
    {'c_id':[374971,363401,373600,363401],
     'title':['p1','p2','p1','p3'],
     'parent_id':[443547,360652,256963,360652]
    })

df.groupby(['parent_id','title']).count()

将给出与您想要的结果相似的结果,但格式不完全相同:

parent_id   title   c_id    
256963      p1      1
360652      p2      1
            p3      1
443547      p1      1

希望这会有所帮助!