Pandas считать значения в одном столбце, где другой столбец остается тем же - PullRequest
1 голос
/ 12 марта 2020

Я пытаюсь получить счетчик всех значений в одном столбце, где другой столбец остается прежним ... с настоящим пердением мозга. Ниже приведен пример, поскольку я знаю, что формулировка довольно странная для чтения.

Данные:

a | item1
a | item2
a | item3
a | item4
b | item1
b | item3
c | item4

Чего я пытаюсь достичь:

a | item1 | 4
a | item2 | 4 
a | item3 | 4
a | item4 | 4
b | item1 | 2
b | item3 | 2
c | item4 | 1

I Я пробовал несколько разных способов сделать это, но в итоге получаю действительно странные числа. Кроме того, моей конечной целью является объединение всех этих данных в таблицу Excel. В настоящее время у меня есть довольно большой лист с кучей столбцов, но я не могу понять, как получить это количество.

При этом, поскольку он уже в Excel, и конечная цель - Excel, я было бы хорошо с решением там тоже. Просто подумал, что Pandas, вероятно, будет быстрее и проще, чем написание какой-либо функции Excel.

1 Ответ

1 голос
/ 12 марта 2020

Вы можете использовать groupby() с transform:

df['col_3'] = df.groupby('col_1')['col_2'].transform('count')

Выход:

  col_1 col_2   col_3
0     a     1       4
1     a     2       4
2     a     3       4
3     a     4       4
4     b     1       2
5     b     3       2
6     c     4       1

Пример данных:

df = pd.DataFrame({'col_1':['a','a','a','a','b','b','c'],
                   'col_2':[1,2,3,4,1,3,4]})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...