【问题标题】:Conditional frequency of elements within lists in pandas data frame熊猫数据框中列表中元素的条件频率
【发布时间】:2020-07-03 12:02:27
【问题描述】:

我在 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

【问题讨论】:

    标签: pandas conditional-statements frequency


    【解决方案1】:

    使用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
    

    【讨论】:

      【解决方案2】:

      让我们做explodegroupbysize

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

      【讨论】:

        猜你喜欢
        • 2013-05-09
        • 2021-11-02
        • 1970-01-01
        • 2018-10-23
        • 2019-12-02
        • 2019-05-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多