#python #python-3.x #pandas
#python #python-3.x #панды
Вопрос:
У меня есть df ниже как
Пример df:
City | Name | Purchase
Texas Bob 0
Texas Ken 4
Florida Ben 1
Texas Red 18
Florida Ken 55
Florida Ted 0
Как я могу рассчитать%, в котором в каждом городе есть человек с 3 или более покупками / все люди в этом городе?
Таким образом, формулой будут люди с покупками 3 / все люди в этом городе
Ожидаемый результат:
City | %
Texas .67
Florida .33
Спасибо!
Ответ №1:
Вы можете использовать mean
условие, чтобы найти этот процент, а также объединить с groupby
для вычисления для каждого города
df['Purchase'].ge(3).groupby(df['City']).mean()
Вывод:
City
Florida 0.333333
Texas 0.666667
Name: Purchase, dtype: float64
Комментарии:
1. Спасибо, что делает функция ge?
2. @Chris90 это сокращение для
greater than or equal to
, то же самое сdf['Purchase'] >=3
.3. Я просто работал над этим сам — но далеко не так просто. Хороший ответ.
4. Спасибо @QuangHoang