我正在尝试获取数据百分比。
counts
Win
BLUE 90729
RED 86010
我使用了df['counts'].value_counts(normalize = True)
并返回
86010 0.5
90729 0.5
Name: matchid, dtype: float64
我如何计算它们至少到小数点后两位?
答案 0 :(得分:3)
将计数除以它们的总和:
df['counts'] / df['counts'].sum()
# counts
#Win
#BLUE 0.51335
#RED 0.48665
在您的原始解决方案中,有一个90729的一个实例和一个86010的一个实例。这就是value_counts
对于90729返回1以及对于86010返回1的原因。 (归一化后,两者均精确变为0.5)。
答案 1 :(得分:1)
df['perc'] = df['counts'].apply(lambda x: x/np.sum(df['counts']))
输出:
BLUE 0.51335
RED 0.48665