从中的列中选择变量

2024-10-04 07:39:22 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: 代码falsetrue区域dfageregionyes
1条回答
网友
1楼 · 发布于 2024-10-04 07:39:22

这将为您提供包含所有列的过滤数据帧,其中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

相关问题 更多 >