Я действительно запутался, не могли бы вы сообщить мне, почему, когда я запускаю этот код, я получаю хороший результат:
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 установлено значение «Да».






Это даст вам отфильтрованный фрейм данных со всеми столбцами, где регион — 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
Но если я хочу весь регион с купленным велосипедом == Да, не только Европа
Не совсем понятно, чего именно вы пытаетесь достичь, но я отредактировал свой ответ, предполагая, что это то, что вам нужно.
Мэй, я прошу еще одну вещь? Что лучше, если я получу результат: Регион Приобретенный велосипед 3 Тихоокеанский регион Да 4 Европа Да 6 Тихоокеанский регион Да Я хотел бы подсчитать, сколько результатов имеется для отдельных переменных, то есть сколько результатов приходится на Европу, Северную Америку и т. д.
вы можете использовать функцию .count() для подсчета результатов (или их группировки). Следуя последнему примеру, вы можете сделать agestock[filter].Region.count() (что даст вам 4.
agestock,regionиdf- разные кадры данных, может быть, поэтому результаты не совпадают?