首頁 > 後端開發 > Python教學 > 如何根據多個值對 Pandas DataFrame 進行子集化?

如何根據多個值對 Pandas DataFrame 進行子集化?

Barbara Streisand
發布: 2024-12-16 20:37:24
原創
211 人瀏覽過

How to Subset a Pandas DataFrame Based on Multiple Values?

基於多個值對Pandas DataFrame 進行子集化

在Pandas 中,根據特定值對DataFrame 進行子集化非常簡單,如以下範例所示:

import pandas as pd

# Dataframe initialization
df = pd.DataFrame({'A': [5, 6, 3, 4], 'B': [1, 2, 3, 5]})

# Subset based on a single value
x = df[df['A'] == 3]
登入後複製

但是,在選擇與值清單相符的行時會出現挑戰。考慮以下用例:

# List of values to filter on
list_of_values = [3, 6]

# Subset attempt (incorrect syntax)
y = df[df['A'] in list_of_values]
登入後複製

此語法將導致錯誤,因為 Pandas 需要稍微不同的語法來基於多個值進行子集。

解:使用 isin()方法

基於值列表對 DataFrame 進行子集化的正確方法是使用 isin() 方法。以下是修正後的程式碼:

y = df[df['A'].isin(list_of_values)]
登入後複製

輸出:

     A  B
1    6  2
2    3  3
登入後複製

isin() 方法採用值清單或陣列作為輸入,並傳回包含指定列符合的行的DataFrame輸入中的任何值。

反向選擇

選擇列值不符的行提供的清單中,您可以將 ~ 運算子與 isin() 結合使用。例如:

# Inverse subset
z = df[~df['A'].isin(list_of_values)]
登入後複製

輸出:

   A  B
0  5  1
3  4  5
登入後複製

以上是如何根據多個值對 Pandas DataFrame 進行子集化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板