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

Python 如何知道分配给个人p1的子女人数?,python,pandas,pandas-groupby,data-analysis,recursive-query,Python,Pandas,Pandas Groupby,Data Analysis,Recursive Query,在下面的数据(df2)中,我需要知道每个p1有多少(计数)个孩子? 例如:在单个p1中显示。 我需要一个数据表为这张图片在下面的形式 p1_id | no. of p1|no. of p2| no. of p3 | 374971| 1 |3 | 4 | .... |..... |...... |..... | 考虑到这一点:没有一定的等级制度。比如,可能p1下面有另一个p1或p3。并且可能有n个分支和节点 Df2 这个df2问

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

p1_id | no. of p1|no. of p2| no. of p3 |
374971| 1        |3        | 4         |
....  |.....     |......   |.....      |
考虑到这一点:没有一定的等级制度。比如,可能p1下面有另一个p1或p3。并且可能有n个分支和节点

Df2

这个df2问题应该给出如下输出

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

如果我正确理解你的问题, 您只需要计算每个家长id有多少p1、p2、p3等。 在这种情况下,您可以使用包含两列的列表执行.groupby操作:

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

希望这有帮助

如果我正确理解了你的问题, 您只需要计算每个家长id有多少p1、p2、p3等。 在这种情况下,您可以使用包含两列的列表执行.groupby操作:

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

希望这有帮助

但这将只显示直系子女,而不是孙辈。请参考图片,但这将只显示直系子女,而不是孙辈。请参考图片