我试图在下表中使用多个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函数有什么不对吗?
Thx
发布于 2020-10-01 16:05:18
尝试使用布尔运算符的单个loc:
df.loc[df['PERIOD'].str.contains('JAN') &
df['REFERENCE'].str.contains('A')]发布于 2020-10-01 16:08:39
您可以通过使用&将它们分开,从而给出两个条件。因此,您不需要使用两个.loc。
带.loc的
df.loc[(df['PERIOD'].str.contains('Jan')) & (df['REFERENCE'].str.contains('abc'))]或
无.loc的
df[(df['PERIOD'].str.contains('Jan')) & (df['REFERENCE'].str.contains('abc'))]输出:
REFERENCE PERIOD QTY PRICE
0 abc123 Jan-20 20 21.2https://stackoverflow.com/questions/64159115
复制相似问题