從pandas.DataFrame 中選擇複雜條件
考慮以下DataFrame:
import pandas as pd from random import randint df = pd.DataFrame({'A': [randint(1, 9) for x in range(10)], 'B': [randint(1, 9)*10 for x in range(10)], 'C': [randint(1, 9)*100 for x in range(10)]})
從以下位置選擇值“A”,“B”的對應值大於50,而“C”則不大於50等於900,我們可以利用 Pandas 的方法和習慣用法。
我們先應用列運算來取得布林 Series 物件:
df["B"] > 50 (df["B"] > 50) & (df["C"] != 900)
這些 Series 代表我們感興趣的條件。然後,我們可以使用以下條件對DataFrame 進行索引來過濾資料:
df["A"][(df["B"] > 50) & (df["C"] != 900)]
或者,我們可以使用.loc 來實現相同的結果:
df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]
此方法提供更多控制並允許更可自訂的索引體驗。
產生的 DataFrame 將只包含 'A' 的值符合指定條件。
以上是如何根據多個複雜標準從 pandas DataFrame 中選擇資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!