Как узнать количество детей, выделенных для индивидуального p1? - PullRequest
1 голос
/ 20 марта 2019

В приведенных ниже данных (df2) мне нужно знать, сколько (количество) детей имеет каждый p1?Например: в это изображение показывает один p1.Мне нужна таблица данных для этой картины в следующем виде.

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

, учитывая, что: нет определенной иерархии.Например, возможно, что у p1 есть другой p1 под ним или p3 под ним.И может быть 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 голосов
/ 20 марта 2019

Если я правильно понимаю ваш вопрос, вы просто хотите посчитать, сколько p1, p2, p3 и т. Д. Существует на parent_id.В этом случае вы можете сделать .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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...