Как посчитать вхождение каждого элемента в серию списков pandas? - PullRequest
2 голосов
/ 11 апреля 2020

Я новичок ie и довольно застрял в моем python проекте. У меня есть серия pandas, содержащая списки, например:

>> df.head()
>> column1       
   ['A', 'B']
   ['A']
   ['A', 'C']
   ['A', 'B', 'C']
   ['B']

Желаемый результат должен быть таким:

>> column1   column2
    'A'         4
    'B'         3
    'C'         2

Не имеет значения, column1 - это строка или список с одним элементом.

Я пробовал это:

df.groupby('column1').count()

df['column1'].value_counts()

Но оба дали мне :

TypeError: unhashable type: 'list'

Также пробовал:

df.groupby('column1')

Но это не показывает результаты.

Пробные решения здесь ( Как напечатать групповой объект ), но ничего не получилось: (

Ответы [ 2 ]

2 голосов
/ 11 апреля 2020

Попробуйте:

df1['column1'].explode().groupby().count()

или

df1.explode('column1').groupby('column1').count()
1 голос
/ 11 апреля 2020
df.explode('Column1').groupby('Column1').size().reset_index(name='Column2')

Выход:

  Column1  Column2
0       A        4
1       B        3
2       C        2
...