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

如何使用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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

示例代码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:

6. 总结

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

相关推荐

諠草的意思
黑帮365天第3季是真实的吗

諠草的意思

🕒 09-12 👁️ 9050
手机出厂密码一般是多少?手机?
365bet送彩金

手机出厂密码一般是多少?手机?

🕒 07-03 👁️ 7579
《圣斗士星矢》,圣斗士的圣衣都是怎么得来的?
黑帮365天第3季是真实的吗

《圣斗士星矢》,圣斗士的圣衣都是怎么得来的?

🕒 08-30 👁️ 9917