如何使用 Pandas 的loc方法结合两个条件来筛选 DataFrame 中的数据

如何使用 Pandas 的loc方法结合两个条件来筛选 DataFrame 中的数据

参考:pandas dataframe loc two conditions

在数据分析中,经常需要根据多个条件来筛选数据。Pandas 提供了非常强大的数据筛选工具,其中 loc 方法是最常用的数据选择方法之一。本文将详细介绍如何使用 Pandas 的 loc 方法结合两个条件来筛选 DataFrame 中的数据。

1. 基本使用方法

在开始详细介绍之前,我们首先需要了解 loc 方法的基本用法。loc 方法主要用于通过标签索引行数据。其基本语法如下:

dataframe.loc[行标签, 列标签]

其中,行标签和列标签可以是单个标签、标签列表、标签切片、布尔数组等。

2. 使用两个条件进行筛选

当我们需要根据两个条件筛选数据时,可以使用逻辑运算符将两个条件组合起来。常用的逻辑运算符包括 &(和)、|(或)、~(非)。

示例代码 1:使用 & 运算符

import pandas as pd

# 创建示例 DataFrame
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 35, 40],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
})

# 使用两个条件筛选数据
result = df.loc[(df['Age'] > 30) & (df['City'] == 'pandasdataframe.com Chicago'), :]
print(result)

Output:

如何使用 Pandas 的loc方法结合两个条件来筛选 DataFrame 中的数据

示例代码 2:使用 | 运算符

import pandas as pd

# 创建示例 DataFrame
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 35, 40],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
})

# 使用两个条件筛选数据
result = df.loc[(df['Age'] > 30) | (df['City'] == 'pandasdataframe.com Houston'), :]
print(result)

Output:

如何使用 Pandas 的loc方法结合两个条件来筛选 DataFrame 中的数据

示例代码 3:使用 ~ 运算符

import pandas as pd

# 创建示例 DataFrame
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 35, 40],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
})

# 使用两个条件筛选数据
result = df.loc[~((df['Age'] <= 30) & (df['City'] == 'pandasdataframe.com New York')), :]
print(result)

Output:

如何使用 Pandas 的loc方法结合两个条件来筛选 DataFrame 中的数据

3. 复杂条件的筛选

在实际应用中,我们可能会遇到更复杂的筛选条件。这时,我们可以通过组合多个逻辑运算符来实现。

示例代码 4:组合多个条件

import pandas as pd

# 创建示例 DataFrame
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 35, 40],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
})

# 使用多个条件筛选数据
result = df.loc[(df['Age'] > 25) & (df['City'].str.contains('pandasdataframe.com')) & (df['Name'].str.startswith('A')), :]
print(result)

Output:

如何使用 Pandas 的loc方法结合两个条件来筛选 DataFrame 中的数据

示例代码 5:使用 isin 方法

import pandas as pd

# 创建示例 DataFrame
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 35, 40],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
})

# 使用 `isin` 方法和逻辑运算符
result = df.loc[df['City'].isin(['pandasdataframe.com New York', 'pandasdataframe.com Los Angeles']) & (df['Age'] > 30), :]
print(result)

Output:

如何使用 Pandas 的loc方法结合两个条件来筛选 DataFrame 中的数据

示例代码 6:使用 query 方法

import pandas as pd

# 创建示例 DataFrame
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 35, 40],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
})

# 使用 `query` 方法
result = df.query('Age > 30 & City == "pandasdataframe.com Houston"')
print(result)

Output:

如何使用 Pandas 的loc方法结合两个条件来筛选 DataFrame 中的数据

4. 总结

在本文中,我们详细介绍了如何使用 Pandas 的 loc 方法结合两个条件来筛选 DataFrame 中的数据。通过多个示例代码,我们展示了如何使用逻辑运算符和其他 Pandas 方法来实现复杂的数据筛选。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程