Df列の特定の値の割合を取得したい。 (col1、col2、col3、gender)性別の列にMまたはFの値があるdfがあるとします。dfのMとFの値の割合を取得します。
これを試してみましたが、これによりMおよびFインスタンスの数がわかりますが、これらをdfの値の総数に対する割合として求めています。
df.groupby('gender').size()
誰か助けてもらえますか?
value_counts
でnormalize=True
を使用:
df['gender'].value_counts(normalize=True) * 100
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
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
1 4640 11.265417
df1=df.diff(periods=1,axis=0)
difvalue=df1[[list(df1.columns)[-1]]].max()
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
)
df['gender'].value_counts(Normalize=True)*100 #will convert output to percentages
output:
M=60
F=40