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

列中按值列出的熊猫百分比

  •  14
  • SANM2009  · 技术社区  · 7 年前

    我想在df列中得到特定值的百分比。假设我有一个df(col1,col2,col3,gender),gender列的值是m或f,我想得到df中m和f值的百分比。

    我尝试过这个方法,它给出了m和f实例的数量,但我希望这些实例占df中值总数的百分比。

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

    有人能帮忙吗?

    3 回复  |  直到 7 年前
        1
  •  33
  •   cs95 abhishek58g    7 年前

    使用 value_counts 具有 normalize=True :

    df['gender'].value_counts(normalize=True) * 100
    
        2
  •  4
  •   cs95 abhishek58g    7 年前

    如果你不需要看 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
    
        3
  •  0
  •   slfan Narendra    6 年前

    找出目标变异与切克不平衡的百分比。

    g = data[Target_col_Y]
    df = pd.concat([g.value_counts(),              
    g.value_counts(normalize=True).mul(100)],axis=1,keys=('counts','percentage'))
    
    print (df)
    

    计数百分比

    0 36548 88.734583

    14640 11.265417号

    在这里查找列百分比的最大值,以检查其中的不平衡程度

    df1=df.diff(periods=1,axis=0)
    difvalue=df1[[list(df1.columns)[-1]]].max()