Фрейм данных Python для получения соотношения конкретных строк к общему - PullRequest
1 голос
/ 17 апреля 2019

Простой фрейм данных. Я хочу, чтобы в процентах было показано количество строк в столбце «Проверено», равное 22, по отношению к общему количеству строк.

т.е. 1. в столбце «Проверено» 5 строк по 22 * ​​1003 *

  1. фрейм данных всего 15 строк

Таким образом, процент составляет 5/15 = 0,33

Я попробовал ниже, но это дает ноль.

Как я могу это исправить? Спасибо.

import pandas as pd

data = {'Unit_Weight': [335,335,119,119,52,452,19,19,19,165,165,165,724,724,16],
'Tested' : [22,12,14,16,18,20,22,24,26,28,22,22,48,50,22]}

df = pd.DataFrame(data)

num_row = df.shape[0]

suspect_row = df[df["Tested"] == 22].shape[0]

suspect_over_total = suspect_row/num_row

print num_row             # 15
print suspect_row         # 5

print float(suspect_over_total)   # 0.0

1 Ответ

1 голос
/ 17 апреля 2019

suspect_over_total = suspect_row/num_row означает, что вы выполняете операцию int / int с результатом 0.3333333, поэтому Python выдаст вам результат int, 0 в этом случае.

Как сказал пузырь, вы должны преобразовать один из операндов в float:

suspect_over_total = float(suspect_row)/num_row   # 0.33333333333
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...