从大熊猫的列中选择变量

时间:2020-12-26 10:17:57

标签: python pandas dataframe

我真的很困惑,你能告诉我为什么当我运行这段代码时我得到了很好的结果:

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 为“是”的所有区域

1 个答案:

答案 0 :(得分:0)

这将为您提供过滤数据框,其中包含 Region 为 EuropePurchased 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