代码之家  ›  专栏  ›  技术社区  ›  SANM2009

Pandas以百分比[重复]的形式获取列中项目出现的频率

  •  74
  • SANM2009  · 技术社区  · 6 年前

    我想在df列中获取特定值的百分比。假设我有一个带有(col1、col2、col3、gender)的df,gender列的值为M、F或其他。我想得到df中M,F,其他值的百分比。

    我已经尝试过这个方法,它给了我M,F,其他实例的数目,但我希望它们占df中值总数的百分比。

    df.groupby('gender').size()
    

    有人能帮忙吗?

    5 回复  |  直到 4 年前
        1
  •  4
  •   Mortz    5 年前

    使用 value_counts 具有 normalize=True :

    df['gender'].value_counts(normalize=True) * 100
    

    结果是(0,1)范围内的一个分数。我们在这里乘以100,以得到%。

        2
  •  0
  •   Harshal SG    5 年前

    如果你不需要看 M F 值以外的值 gender 列,您可以尝试使用 value_counts() count() 如下所示:

    df = pd.DataFrame({'gender':['M','M','F', 'F', 'F']})
    # Percentage calculation
    (df['gender'].value_counts()/df['gender'].count())*100
    

    结果:

    F    60.0
    M    40.0
    Name: gender, dtype: float64
    

    或者,使用 groupby :

    (df.groupby('gender').size()/df['gender'].count())*100