首頁 >後端開發 >Python教學 >如何根據複雜的多列標準選擇 Pandas DataFrame 行?

如何根據複雜的多列標準選擇 Pandas DataFrame 行?

DDD
DDD原創
2024-12-01 21:07:11577瀏覽

How to Select Pandas DataFrame Rows Based on Complex Multi-Column Criteria?

從pandas.DataFrame中選擇複雜的條件

在使用Pandas進行資料分析時,我們經常需要根據複雜的條件選擇特定的行或列標準。本問題示範如何在給定“B”和“C”對應值滿足特定條件的情況下從“A”列中選擇值。

為了理解這個問題,讓我們建立一個範例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' 對應的值不應等於 900。

為了解決這個問題,我們可以使用Pandas 的列操作:

df["B"] > 50

這將建立一個布林系列對象,其中每個元素對應於「B」中的一行,並指示對應的'B' 值大於50。

(df["B"] > 50) & (df["C"] != 900)

這利用廣播和邏輯運算符來組合佈林 Series 對象,創建一個新 Series,其中每個元素指示相應的行是否滿足這兩個條件。

使用這個系列作為索引,我們可以提取「A」值:

df["A"][(df["B"] > 50) & (df["C"] != 900)]

或者,使用.loc 語法:

df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]

此方法有效提取滿足指定條件的行,從而能夠對所選資料進行進一步分析或操作。

以上是如何根據複雜的多列標準選擇 Pandas DataFrame 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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