我想要找尋某種房型的最高成交價。第一種方式可行,但是當我套到第二種方式時,卻產生錯誤訊息。想請板上各位前輩幫我看一下! 謝謝!
第一種方式
bond=pd.read_csv('./content/data.csv', index_col='h_type')
a=bond.loc['mansion']
aMax=a.sort_values(['h_price'],ascending=False).head(1)
第二種方式
bond=pd.read_csv('./content/data.csv,' index_col='h_type')
if bond.loc['mansion']: #<= 這裡出現錯誤
idMax = priceSr.idxmax()
if not isnan(idMax):
maxSr = df.loc[idMax]
if most is None:
most = maxSr.copy()
else:
if float(maxSr['h_price']) > float(most['h_price']):
most = maxSr.copy()
most = most.to_frame().transpose()
print(most, '\n==========')
錯誤訊息:
1536 def __nonzero__(self):
1537 raise ValueError(
-> 1538 f"The truth value of a {type(self).__name__} is ambiguous. "
1539 "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
1540 )
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
在Python的if判斷中,用以判斷的表達式必須回傳True/False才能讓if進行判斷。
閣下將一個陣列的物件傳遞給if進行判斷,自然會出錯的。
謝謝回覆! 我試著把那一句改成if "mansion" in bond.loc['mansion']:
判斷True 値,結果出現如下訊息(不曉得這句錯誤是什麼)
3361 return self._engine.get_loc(casted_key)
3362 except KeyError as err:
-> 3363 raise KeyError(key) from err
3364
3365 if is_scalar(key) and isna(key) and not self.hasnans:
KeyError: 'mansion'
bond.loc['mansion']給出來的是"mansion"欄位中的所有資料,"mansion"這個詞當然不在其中。建議先對資料本身的結構仔細了解一下。