Получить количество вхождений внутри двух столбцов внутри CSV

Здравствуйте, у меня есть следующий набор данных в CSV:

Group           Size     Some_other_column1      Some_other_column2

Short          Small            blabla1                     blabla6    
Moderate       Medium           babla3                      blabla8
Short          Small            blabla2                     blabla7
Moderate       Small            blabla4                     blabla9
Tall           Large            blabla5                     blabla10
Short          Medium           blabla11                    blabla12

Я хотел бы получить следующий результат, используя код Python:

Group           Size      Count     Some_other_column1      Some_other_column2

Short          Small       2            blabla1                     blabla6
Moderate       Medium      1            babla3                      blabla8
Short          Small       2            blabla2                     blabla7
Moderate       Small       1            blabla4                     blabla9
Tall           Large       1            blabla5                     blabla10
Short          Medium      1            blabla11                    blabla12

По сути, мне нужно подсчитать количество пар группового размера и создать новый столбец для этого, который называется, скажем, "Количество", оставив все остальные столбцы одинаковыми. Я могу использовать панд или что-нибудь, что может помочь.

Для справки, был задан еще один вопрос по этой теме, но он не решил мою проблему, поскольку у меня есть несколько столбцов, которые мне нужно сохранить: Python: получить счетчик частоты на основе двух столбцов (переменных) в панде dataframe

Здесь есть еще одна тема: как присвоить имя столбцу size()? Но это также не отвечает на мой вопрос, потому что у меня есть еще 2 столбца ("некоторые другие столбцы 1/2"), которые я не хочу косвенно отбрасывать, применяя метод, описанный по ссылке выше. Кроме того, что не менее важно, я не хочу объединять пары, мне нужно сохранить их все, потому что они имеют разные значения в Some_other_column1/2.

1 ответ

Решение

Тебе нужно insert с GroupBy.transform из size:

df.insert(2, 'Count', df.groupby(['Group','Size'])['Size'].transform('size'))
print (df)
      Group    Size  Count Some_other_column1 Some_other_column2
0     Short   Small      2            blabla1            blabla6
1  Moderate  Medium      1             babla3            blabla8
2     Short   Small      2            blabla2            blabla7
3  Moderate   Small      1            blabla4            blabla9
4      Tall   Large      1            blabla5           blabla10
5     Short  Medium      1           blabla11           blabla12
Другие вопросы по тегам