[英]Using multiple 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 函數時我做錯了什么?
謝謝
使用布爾運算符嘗試單個loc
:
df.loc[df['PERIOD'].str.contains('JAN') &
df['REFERENCE'].str.contains('A')]
你可以用&
分隔兩個條件。 因此,您不需要使用兩個.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.2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.