首頁 > 後端開發 > Python教學 > 如何根據列值選擇 Pandas DataFrame 中的特定行?

如何根據列值選擇 Pandas DataFrame 中的特定行?

Patricia Arquette
發布: 2024-12-30 15:30:13
原創
233 人瀏覽過

How to Select Specific Rows in a Pandas DataFrame Based on Column Values?

在 Pandas 中根據列值選擇行

在 Pandas 中,過濾 DataFrame 以根據列值選擇特定行可以使用比較運算符和布林索引。

比較列值

選擇行如果列值與特定標量值匹配,請使用== 運算子:

df.loc[df['column_name'] == some_value]
登入後複製

要選擇列值位於列表或其他可迭代值中的行,請使用isin 運算子:

df.loc[df['column_name'].isin(some_values)]
登入後複製

組合條件

可以使用&運算子組合多個條件來選擇滿足所有條件的行條件:

df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]
登入後複製

請注意,括號是確保正確的運算子括號優先順序所必需的。

否定條件

選擇與特定值不符或不在其中的行特定列表,使用!= 或~:

df.loc[df['column_name'] != some_value]
df = df.loc[~df['column_name'].isin(some_values)] # In-place replacement requires `loc`
登入後複製

索引來否定條件優化

為了對常用條件進行有效過濾,在列上建立索引可能會很有幫助。這允許使用df.loc 進行更快的查找:

df = df.set_index(['B'])
df.loc['one']
登入後複製

範例

考慮以下DataFrame:

df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
                   'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
                   'C': np.arange(8), 'D': np.arange(8) * 2})
登入後複製

選擇列'A' 等於' 的行foo':

print(df.loc[df['A'] == 'foo'])
登入後複製

選擇列「B」所在的行['一', '三']:

print(df.loc[df['B'].isin(['one','three'])])
登入後複製

要選擇「B」列為「一」或「二」的行:

df = df.set_index(['B'])
print(df.loc[df.index.isin(['one','two'])])
登入後複製

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

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