答案 0 :(得分:0)
在这种情况下,您不需要数据透视表,因为您只需要对一个变量求和。实现目标的一种简单方法是:
A = ['good','good','bad','good',np.nan]
Data = pd.DataFrame(A)
Data.columns = ['Status']
Data.index=['x1','x2','x3','x4','x5']
counts = Data.Status.value_counts().to_frame('total')
counts['percentage'] = counts.total /
counts.total.sum()
要对数据透视表执行相同的操作,我认为您需要引入一个虚拟变量来求和。无论哪种方式,您仍然都必须在事后计算百分比:
Data['total'] = 1
piv = Data.pivot_table(
index='Status',
values='total',
aggfunc='sum'
)
piv['percentage'] = piv.total/piv.total.sum(axis=0)