首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多个loc()

使用多个loc()
EN

Stack Overflow用户
提问于 2020-10-01 16:02:54
回答 2查看 43关注 0票数 1

我试图在下表中使用多个loc(),但不幸的是,代码给了我一个错误,声明:

ValueError: DataFrame的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all().

我的df如下:

代码语言:javascript
复制
REFERENCE     PERIOD      QTY      PRICE
abc123        Jan-20       20       21.2
abc123        Feb-20      -40       22.3
abc123        Mar-20       20       22.9
cde456        Aug-20      -10       18.7
cde456        Sep-20       20       19.4
cde456        Jan-20      -10       19.93

理想情况下,给出错误的代码应该返回表的子集:

代码语言:javascript
复制
dfa = df.loc[df['PERIOD'].str.contains(pat='JAN')] and df.loc[df['REFERENCE'].str.contains(pat='abc')]

知道我在同一个字符串中使用2 .loc函数有什么不对吗?

Thx

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-01 16:05:18

尝试使用布尔运算符的单个loc

代码语言:javascript
复制
df.loc[df['PERIOD'].str.contains('JAN') & 
       df['REFERENCE'].str.contains('A')]
票数 2
EN

Stack Overflow用户

发布于 2020-10-01 16:08:39

您可以通过使用&将它们分开,从而给出两个条件。因此,您不需要使用两个.loc

.loc

代码语言:javascript
复制
df.loc[(df['PERIOD'].str.contains('Jan')) & (df['REFERENCE'].str.contains('abc'))]

.loc

代码语言:javascript
复制
df[(df['PERIOD'].str.contains('Jan')) & (df['REFERENCE'].str.contains('abc'))]

输出:

代码语言:javascript
复制
   REFERENCE  PERIOD  QTY  PRICE
0    abc123  Jan-20   20   21.2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64159115

复制
相关文章

相似问题

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