我想在df列中获取特定值的百分比。假设我有一个df(col1,col2,col3,性别)性别列的值为M或F.我想得到df中M和F值的百分比。
我试过这个,它给了我M和F实例的数量,但我希望这些是df中值总数的百分比。
df.groupby('gender').size()
有人可以帮忙吗?
答案 0 :(得分:26)
将value_counts
与normalize=True
:
df['gender'].value_counts(normalize=True) * 100
答案 1 :(得分:3)
如果您不需要查看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
答案 2 :(得分:1)
让我们说有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
答案 3 :(得分:0)
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()
答案 4 :(得分:0)
import scipy.fftpack
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
Y = pd.read_excel(r'/Users/0000/Documents/0000/data/accelData1.xls')
y1 = Y['X'].values
y2 = Y['Y'].values
y3 = Y['Z'].values
y = y1 + y2 +y3
N = 1280
T = 0.01
x = np.linspace(0.0, N*T, N)
yf = np.abs(scipy.fft(y))
xf = np.linspace(0.0, 1.0/(2.0*T), N//2)
plt.plot(yf[0:N//2], xf, label = 'signal')