熊猫数据框中列表中元素的条件频率

时间:2020-03-23 00:28:30

标签: pandas conditional-statements frequency

我在这样的大熊猫中有一个数据框:

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 :(得分:0)

让我们explodegroupby size

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

答案 1 :(得分:0)

使用DataFrame.explodeSeriesGroupBy.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