簡體   English   中英

使用多個 loc()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM