Оценка процента True для уникального значения в столбце - PullRequest
2 голосов
/ 11 ноября 2019

У меня есть набор данных с несколькими столбцами, из которых я хотел бы оценить 2 из них. В одном из столбцов отображаются целые числа от 0 до 1, а во втором - название бренда. Я хотел бы знать, как я мог получить число раз, когда столбец 1 имеет 1 для каждого уникального значения столбца бренда.

Пример:

Sold out      Brand

1             Twinkies

1             kitkat

0             Twinkies

0             Nerds

0             Rice krispies 

0             Twinkies

1             snickers

и что результат можетбыть:

Twinkies: 33% - 1/3

kitkat: 100% - 1/1

Nerds: 0% - 0/1

Рисовые чипсы 0% - 0/1

Ответы [ 2 ]

1 голос
/ 11 ноября 2019

Использование GroupBy.mean - это число 1 значений, деленное на число:

s = df.groupby('Brand')['Sold out'].mean().mul(100)
print (s)
Brand
Nerds              0.000000
Rice krispies      0.000000
Twinkies          33.333333
kitkat           100.000000
snickers         100.000000
Name: Sold out, dtype: float64
1 голос
/ 11 ноября 2019

Вы можете использовать функцию groupby():

g = df.groupby('Brand')
g['Sold out'].sum() / g['Brand'].size() * 100

Выход:

Brand
Nerds         0.000000
Rice          0.000000
Twinkies     33.333333
kitkat      100.000000
snickers    100.000000
dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...