Выбрать переменную из столбца в пандах

Я действительно запутался, не могли бы вы сообщить мне, почему, когда я запускаю этот код, я получаю хороший результат:

agestock = agestock[(agestock['Region'] == "Europe") & (agestock['Purchased Bike'] == "Yes")]

Выход

agestock
Region  Age Purchased Bike
4   Europe  36  Yes
7   Europe  43  Yes
9   Europe  48  Yes

Но когда я пытался запустить только одну переменную, я получаю

region = df[['Region', 'Purchased Bike']]
region = region['Purchased Bike'] == "Yes"
region

Выход

0      False
1      False
2      False
3       True
4       True

Мне нужно получить все регионы, где для PurchasedBike установлено значение «Да».

agestock, region и df - разные кадры данных, может быть, поэтому результаты не совпадают?
cs95 26.12.2020 11:23
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
4
1
952
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это даст вам отфильтрованный фрейм данных со всеми столбцами, где регион — Europe, а Purchased Bike — да.

agestock = pd.DataFrame({
  'Region': {0: 'Europe', 1: 'Europe', 2: 'Europe', 3: 'APAC', 4: 'US'},  
  'Age': {0: 36, 1: 43, 2: 48, 3: 33, 4: 43},  
  'Purchased Bike': {0: 'Yes', 1: 'Yes', 2: 'Yes', 3: 'No', 4: 'Yes'}})

In [2]: agestock
Out[2]:
   Region   Age Purchased Bike
0  Europe    36            Yes
1  Europe    43            Yes
2  Europe    48            Yes
3    APAC    33             No
4      US    43            Yes

In [3]: agestock.query('Region == "Europe" and `Purchased Bike` == "Yes"')
Out[3]:
   Region   Age Purchased Bike
0  Europe    36            Yes
1  Europe    43            Yes
2  Europe    48            Yes

Альтернативный подход

In [4]: filter = agestock['Purchased Bike'] == 'Yes'


In [5]: agestock[filter]
Out[5]:
   Region   Age Purchased Bike
0  Europe    36            Yes
1  Europe    43            Yes
2  Europe    48            Yes
4      US    43            Yes

In [6]: agestock[filter].Region
Out[6]:
0    Europe
1    Europe
2    Europe
4        US
Name: Region, dtype: object

Но если я хочу весь регион с купленным велосипедом == Да, не только Европа

Przemek Dabek 26.12.2020 12:07

Не совсем понятно, чего именно вы пытаетесь достичь, но я отредактировал свой ответ, предполагая, что это то, что вам нужно.

Danail Petrov 26.12.2020 12:23

Мэй, я прошу еще одну вещь? Что лучше, если я получу результат: Регион Приобретенный велосипед 3 Тихоокеанский регион Да 4 Европа Да 6 Тихоокеанский регион Да Я хотел бы подсчитать, сколько результатов имеется для отдельных переменных, то есть сколько результатов приходится на Европу, Северную Америку и т. д.

Przemek Dabek 26.12.2020 12:34

вы можете использовать функцию .count() для подсчета результатов (или их группировки). Следуя последнему примеру, вы можете сделать agestock[filter].Region.count() (что даст вам 4.

Danail Petrov 26.12.2020 13:01

Другие вопросы по теме