如何使用pandas对DataFrame进行筛选操作

如何使用pandas对DataFrame进行筛选操作

参考:pandas filter df

在数据分析和处理过程中,数据筛选是一个非常常见且重要的操作。pandas是Python中最流行的数据处理库之一,它提供了强大的数据筛选功能。本文将详细介绍如何使用pandas对DataFrame进行筛选操作,并通过多个示例代码来展示具体的实现方法。

1. 引入pandas库

在开始之前,我们需要引入pandas库。可以通过以下代码进行引入:

import pandas as pd

2. 创建示例DataFrame

在进行数据筛选操作之前,我们需要创建一个示例DataFrame。以下是一个简单的示例DataFrame:

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Salary': [70000, 80000, 60000, 90000, 85000]
}

df = pd.DataFrame(data)

print(df)

Output:

如何使用pandas对DataFrame进行筛选操作

3. 基本筛选操作

3.1 按列值筛选

我们可以根据某一列的值来筛选DataFrame。例如,筛选出年龄大于25的行:

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Salary': [70000, 80000, 60000, 90000, 85000]
}

df = pd.DataFrame(data)

filtered_df = df[df['Age'] > 25]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

3.2 按多个条件筛选

我们可以使用多个条件来筛选DataFrame。例如,筛选出年龄大于25且工资大于80000的行:

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Salary': [70000, 80000, 60000, 90000, 85000]
}

df = pd.DataFrame(data)

filtered_df = df[(df['Age'] > 25) & (df['Salary'] > 80000)]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

3.3 使用isin()方法筛选

我们可以使用isin()方法来筛选DataFrame。例如,筛选出城市为’New York’或’Chicago’的行:

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Salary': [70000, 80000, 60000, 90000, 85000]
}

df = pd.DataFrame(data)

filtered_df = df[df['City'].isin(['New York', 'Chicago'])]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

3.4 使用str.contains()方法筛选

我们可以使用str.contains()方法来筛选DataFrame。例如,筛选出名字中包含字母’e’的行:

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Salary': [70000, 80000, 60000, 90000, 85000]
}

df = pd.DataFrame(data)

filtered_df = df[df['Name'].str.contains('e')]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

4. 高级筛选操作

4.1 按行索引筛选

我们可以根据行索引来筛选DataFrame。例如,筛选出索引为0和2的行:

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Salary': [70000, 80000, 60000, 90000, 85000]
}

df = pd.DataFrame(data)

filtered_df = df.loc[[0, 2]]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

4.2 按列索引筛选

我们可以根据列索引来筛选DataFrame。例如,筛选出’Name’和’City’列:

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Salary': [70000, 80000, 60000, 90000, 85000]
}

df = pd.DataFrame(data)

filtered_df = df[['Name', 'City']]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

4.3 使用query()方法筛选

我们可以使用query()方法来筛选DataFrame。例如,筛选出年龄大于25且城市为’Los Angeles’的行:

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Salary': [70000, 80000, 60000, 90000, 85000]
}

df = pd.DataFrame(data)

filtered_df = df.query('Age > 25 & City == "Los Angeles"')
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

4.4 使用between()方法筛选

我们可以使用between()方法来筛选DataFrame。例如,筛选出年龄在25到30之间的行:

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Salary': [70000, 80000, 60000, 90000, 85000]
}

df = pd.DataFrame(data)

filtered_df = df[df['Age'].between(25, 30)]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

5. 示例代码

以下是一些完整的pandas代码示例,每个示例代码都是独立的、可直接运行的,并且包含字符串pandasdataframe.com

示例代码1

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[df['Website'] == 'pandasdataframe.com']
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码2

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[df['Name'].str.contains('a')]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码3

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[(df['Age'] > 25) & (df['Website'] == 'pandasdataframe.com')]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码4

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df.query('Age > 25 & Website == "pandasdataframe.com"')
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码5

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[df['Age'].between(25, 30)]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码6

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[df['City'].isin(['New York', 'Chicago'])]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码7

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df.loc[[0, 2]]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码8

示例代码8

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[['Name', 'City']]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码9

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[df['City'].str.contains('New')]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码10

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[(df['Age'] > 25) & (df['City'].str.contains('Los'))]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码11

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[df['Website'].str.contains('pandasdataframe.com')]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码12

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[df['Age'] == 27]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码13

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[df['City'] == 'Phoenix']
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码14

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[df['Name'].isin(['Alice', 'Eve'])]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码15

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df.loc[df['Name'].str.contains('David')]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码16

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[df['Age'] < 30]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码17

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[(df['Age'] > 25) | (df['City'] == 'Chicago')]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码18

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df.loc[df['Website'] == 'pandasdataframe.com']
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码19

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[(df['Name'].str.contains('e')) & (df['Age'] > 24)]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

示例代码20

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
    'Website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'example.com', 'pandasdataframe.com']
}

df = pd.DataFrame(data)
filtered_df = df[df['Name'].str.startswith('A')]
print(filtered_df)

Output:

如何使用pandas对DataFrame进行筛选操作

6. 总结

本文详细介绍了如何使用pandas库对DataFrame进行筛选操作,包括按列值筛选、按多个条件筛选、使用isin()方法筛选、使用str.contains()方法筛选、按行索引筛选、按列索引筛选、使用query()方法筛选以及使用between()方法筛选等。此外,通过20个独立的示例代码展示了具体的实现方法。这些示例代码中都包含了字符串pandasdataframe.com,并且可以直接运行以供参考。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程