使用 Pandas DataFrame 时,经常需要根据特定列中的特定值过滤行。这模仿了 SQL 查询,其中使用 WHERE column_name = some_value 等过滤器检索行。
要选择列值与标量值 some_value 匹配的行,请使用相等运算符 == :
df.loc[df['column_name'] == some_value]
选择行列值位于数组 some_values 中,使用 isin 方法:
df.loc[df['column_name'].isin(some_values)]
可以使用逻辑 & 运算符组合多个条件:
df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]
注意: 使用括号确保运算符优先级正确。
要选择列值不等于 some_value 的行,请使用不等运算符 !=:
df.loc[df['column_name'] != some_value]
对于 isin,请使用对结果取负~:
df = df.loc[~df['column_name'].isin(some_values)]
考虑以下内容DataFrame:
import pandas as pd 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}) print(df)
选择 A 为 foo 的行:
print(df.loc[df['A'] == 'foo'])
选择 B 为 1 或 3 的行:
print(df.loc[df['B'].isin(['one', 'three'])])
创建索引并使用以下命令选择行它:
df = df.set_index(['B']) print(df.loc['one'])
选择具有多个索引值的行:
print(df.loc[df.index.isin(['one', 'two'])])
以上是如何根据列值选择 Pandas DataFrame 中的特定行?的详细内容。更多信息请关注PHP中文网其他相关文章!