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

plicqrtu  于 2023-04-10  发布在  其他
关注(0)|答案(5)|浏览(122)

此问题已在此处有答案

Given a pandas Series that represents frequencies of a value, how can I turn those frequencies into percentages?(4个答案)
Pandas percentage of total with groupby(16个回答)
1年前关闭。
我想得到df列中特定值的百分比。假设我有一个df,其中(col1,col2,col3,gender)gender列的值为M,F或Other。我想得到df中M,F,Other值的百分比。
我已经尝试过了,它给了我M,F,其他示例的数量,但我希望这些作为df中值总数的百分比。

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

有人能帮忙吗

cngwdvgl

cngwdvgl1#

value_countsnormalize=True配合使用:

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

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

67up9zun

67up9zun2#

如果您不需要查看MF值而不是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
siv3szwd

siv3szwd3#

假设有200个值,其中120个被归类为M,80个被归类为F

1)

df['gender'].value_counts()

 output:

 M=120
 F=80

2)

df['gender'].value_counts(Normalize=True)

  output:

  M=0.60
  F=0.40

3)

df['gender'].value_counts(Normalize=True)*100 #will convert output to percentages

  output:

  M=60
  F=40
0yg35tkg

0yg35tkg4#

查找目标变化对chenck不平衡/不平衡的百分比。

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)

计数百分比
电话:036548 88.734583
1 4640 11.265417

在此处查找列百分比中的最大值,以检查#不平衡程度

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

mbyulnm05#

print('(Gender Male= 0):\n {}%'.format(100 - round(df['Gender'].mean()*100, 2)))
print('(Gender Female=1):\n{}%'.format(round(df['Gender'].mean()*100, 2)))

相关问题