首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据DataFrame中多列的条件选择行

根据DataFrame中多列的条件选择行
EN

Stack Overflow用户
提问于 2021-02-15 12:13:24
回答 2查看 76关注 0票数 0

我想根据以下条件选择行:

  • 如果产品价格低于10美元,大于20 10(和小于30 10);
  • ,如果产品价格在10至25美元之间,大于30 10(和小于40 10);
  • ,如果产品价格超过25美元,大于40 10。

下面的代码是我写的。但是,我不断地在'list‘和’int‘的实例之间得到“<’不支持‘”

有人能告诉我吗?谢谢!

df_1 = df([([“price"] < 10) & (["size"] > 20)], [[([“price"] > 10) & (["price"] < 25)] & (["size"] > 30)], [([“price"] > 25) & (["size"] > 40)])

EN

回答 2

Stack Overflow用户

发布于 2021-02-15 12:25:53

您可以将布尔掩码应用于数据访问。

代码语言:javascript
复制
condition_1 = (df['price'] < 10) &  (df["size"] > 20)
condition_2 = (df['price'] > 10) &  (df["size"] > 30)
condition_3 = (df['price'] > 25) &  (df["size"] > 40)

mask = condition_1  & condition_2 & condition_3

filtered_df = df[mask] 
票数 0
EN

Stack Overflow用户

发布于 2021-02-15 12:26:53

试着把它分成几个部分,这样就能更容易地看出你在哪里出错了。

如果我尝试这样做,我将使用.loc函数,它基本上提取您在其中放置的任何内容(可以是列的标签,或者在本例中是逻辑测试)。

试试这个:

代码语言:javascript
复制
df1 = df.loc[(df["price"] < 10 & df["size"] > 20)]

为其他人重复。然后可以使用pd.concat()合并数据格式。

希望这能帮上忙--我对蟒蛇也是新手!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66207827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档