Получить количество вхождений внутри двух столбцов внутри 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