我真的很困惑,你能告诉我为什么当我运行这段代码时我得到了很好的结果:
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 为“是”的所有区域
答案 0 :(得分:0)
这将为您提供过滤数据框,其中包含 Region 为 Europe
且 Purchased Bike
为 Yes 的所有列
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