首页 > 解决方案 > 使用多个 loc()

问题描述

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

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

我的df如下:

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

给我错误的代码理想情况下应该返回表的一个子集:

dfa = df.loc[df['PERIOD'].str.contains(pat='JAN')] and df.loc[df['REFERENCE'].str.contains(pat='abc')]

任何想法我在同一个字符串中使用 2 个 .loc 函数时做错了什么?

谢谢

标签: pythonpandasdataframe

解决方案


loc使用布尔运算符尝试单:

df.loc[df['PERIOD'].str.contains('JAN') & 
       df['REFERENCE'].str.contains('A')]

推荐阅读