Условная частота элементов в списках в кадре данных pandas - PullRequest
1 голос
/ 23 марта 2020

У меня есть фрейм данных в pandas, например, так:

STATUS      FEATURES
  A          [x,y,z]
  A          [t, y]
  B          [x,p,t]
  B           [x,p]

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

STATUS       FEATURES      FREQUENCY
  A             x              1
  A             y              2
  A             z              1
  A             t              1
  B             x              2
  B             t              1
  B             p              2

Ответы [ 2 ]

0 голосов
/ 23 марта 2020

Использование DataFrame.explode и SeriesGroupBy.value_counts:

new_df = (df.explode('FEATURES')
            .groupby('STATUS')['FEATURES']
            .value_counts()
            .reset_index(name='FRECUENCY'))
print(new_df)

Выход

  STATUS FEATURES  FRECUENCY
0      A        y          2
1      A        t          1
2      A        x          1
3      A        z          1
4      B        p          2
5      B        x          2
6      B        t          1
0 голосов
/ 23 марта 2020

Давайте сделаем explode, groupby size

s=df.explode(['FEATURES']).groupby(['STATUS','FEATURES']).size().reset_index()
...