Установка десятичных разрядов с нормализованным числом с помощью Series.value_counts () - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь получить процент от моих данных.

    counts  
Win                         
BLUE 90729  
RED  86010

Я использовал df['counts'].value_counts(normalize = True)
, и он возвращает

86010    0.5
90729    0.5
Name: matchid, dtype: float64

как я могу вычислить их по крайней мере до 2 десятичных знаков?

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Разделите число на их сумму:

df['counts'] / df['counts'].sum()
#       counts
#Win          
#BLUE  0.51335
#RED   0.48665

В вашем исходном решении есть один экземпляр 90729 и один экземпляр 86010. То естьпочему value_counts возвращает 1 для 90729 и 1 для 86010 (после нормализации оба становятся точно равными 0,5).

0 голосов
/ 23 сентября 2018
df['perc'] = df['counts'].apply(lambda x: x/np.sum(df['counts']))

Выход:

BLUE    0.51335
RED     0.48665
...