在 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中文網其他相關文章!