如果需要所有值百分比使用
value_counts with normalize = True,对于多列
groupby和
size表示所有对的长度,并将其除以df的长度(与索引的长度相同):
print (100 * df['A'].value_counts(normalize=True))
Not used 50.0
Used 50.0
Name: A, dtype: float64
print (100 * df['B'].value_counts(normalize=True))
Not used 50.0
Used 50.0
Name: B, dtype: float64
print (100 * df.groupby(['A','B']).size() / len(df.index))
A B
Not used Not used 20.0
Used 30.0
Used Not used 30.0
Used 20.0
dtype: float64
如果需要过滤器值创建掩码并获得mean – 真则处理如1:
print (100 * df['A'].eq('Used').mean())
#alternative
#print (100 * (df['B'] == 'Used').mean())
50.0
print (100 * df['B'].eq('Used').mean())
#alternative
#print (100 * (df['B'] == 'Used').mean())
50.0
print (100 * (df['A'].eq('Used') & df['B'].eq('Used')).mean())
20.0