首页 > 后端开发 > Python教程 > 如何根据列值选择 Pandas DataFrame 中的特定行?

如何根据列值选择 Pandas DataFrame 中的特定行?

Susan Sarandon
发布: 2024-12-26 13:20:10
原创
318 人浏览过

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

根据 Pandas DataFrame 中的列值选择行

使用 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板