在下面的数据(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 |
答案 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
希望这会有所帮助!