【问题标题】:Counting frequencies of the corresponding values in pandas [python 3]计算熊猫中相应值的频率[python 3]
【发布时间】:2017-08-11 00:38:50
【问题描述】:

我有具有以下值的数据集:

var1  var2 
1234  abc
2345  bcs
5678  csd
1234  abc
1234  bcs
5678  csd
1234  bcs
1234  xyz
1234  abc
9101  zzz

我需要对 var1 列中的每个唯一值进行计数并显示 var2 中相应值的前 3 个频率计数,并获取输出,例如:

var1  var2  count
1234  abc   3
1234  bcs   2
1234  xyz   1
5678  csd   2
9101  zzz   1

最有效的方法是什么?

【问题讨论】:

    标签: python pandas count cumulative-frequency


    【解决方案1】:

    您需要包含nlargest

    df.groupby('var1').var2.apply(lambda x: x.value_counts().nlargest(3)) \
        .reset_index(name='count').rename(columns={'level_1': 'var2'})
    
       var1 var2  count
    0  1234  abc      3
    1  1234  bcs      2
    2  1234  xyz      1
    3  2345  bcs      1
    4  5678  csd      2
    5  9101  zzz      1
    

    【讨论】:

      【解决方案2】:
      df_a.groupby(['var1','var2'])['var2'].agg({'count':'count'}).reset_index()
      

      【讨论】:

      • 斯科特,不错的解决方案!在末尾添加 count() 也可以,但是在末尾添加 count 列看起来要好得多,谢谢!
      【解决方案3】:

      这行得通:

      df.groupby(['var1','var2']).count()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-05
        • 2018-03-28
        • 2022-01-18
        • 2018-07-24
        • 2014-02-05
        • 2022-11-14
        • 2017-11-15
        • 2019-12-04
        相关资源
        最近更新 更多