首頁 >後端開發 >Python教學 >如何根據資料幀中的值範圍過濾行而不產生模糊的真值?

如何根據資料幀中的值範圍過濾行而不產生模糊的真值?

DDD
DDD原創
2024-11-19 10:13:03996瀏覽

How to Filter Rows Based on Value Range in a DataFrame Without Ambiguous Truth Values?

根據 DataFrame 中的值範圍選擇行

使用 DataFrame 時,可能需要根據特定範圍過濾行特定列中的值。例如,考慮一個名為 df 的 DataFrame,其中包含一列 opening_price。要提取 close_price 中的值在 99 到 101 之間的行,通常使用以下程式碼:

df[99 <= df['closing_price'] <= 101]

但是,此程式碼可能會觸發 ValueError,表示「系列的真值不明確」。出現此錯誤的原因是比較結果是一系列布林值,嘗試直接使用它進行行選擇可能會導致歧義。

幸運的是,有一種更合適的方法來實現此過濾,而無需借助循環。以下是使用 Series. Between() 的更正代碼:

df[df['closing_price'].between(99, 101)]

Series. Between() 提供了一種簡單的方法來檢查 Series 中的值是否落在指定範圍內。此方法有兩個參數:下限和上限。在上面的範例中,我們分別提供 99 和 101 作為下限和上限,以選擇 opening_price 在這些值之間的行。

此方法透過傳回一系列布林值有效解決了歧義問題明確指示每一行是否滿足條件。然後使用這些布林值從 DataFrame 中過濾並選擇所需的行。

以上是如何根據資料幀中的值範圍過濾行而不產生模糊的真值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn