【问题标题】:select variable from column in pandas从熊猫的列中选择变量
【发布时间】:2021-04-03 21:52:14
【问题描述】:

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

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

【问题讨论】:

  • agestockregiondf 是不同的数据帧,也许这就是结果不一样的原因?

标签: python pandas dataframe


【解决方案1】:

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

【讨论】:

  • 但如果我想要购买自行车的所有地区 ==是的,不仅仅是欧洲
  • 目前还不太清楚你到底想要达到什么目标,但我已经编辑了我的答案,猜测这就是你所需要的......
  • 麦我还要一件事吗?如果我得到结果会更好:Region Purchased Bike 3 Pacific Yes 4 Europe Yes 6 Pacific Yes 我想计算单个变量有多少结果,即欧洲、北美等有多少结果。
  • 您可以使用 .count() 函数对结果进行计数(或对它们进行分组)。继上一个示例之后,您可以执行agestock[filter].Region.count()(这将给您4
猜你喜欢
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2019-07-13
  • 1970-01-01
  • 2020-07-17
相关资源
最近更新 更多