1. 基于条件筛选
1.1 单条件筛选
可以使用布尔索引来筛选满足特定条件的数据。
import pandas as pd
# 创建一个DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Age': [24, 27, 22, 32], 'City': ['New York', 'Los Angeles', 'Chicago', 'Houston'], 'Score': [85, 92, 78, 88]}
df = pd.DataFrame(data)
print(df)
# 筛选Age大于25的行
df_filtered = df[df['Age'] > 25]
print(df_filtered)
输出:
Name Age City Score1 Bob 27 Los Angeles 92
3 David 32 Houston 88
1.2 多条件筛选
可以使用逻辑运算符(&
表示与,|
表示或)来组合多个条件进行筛选。
# 筛选Age大于25且Score大于80的行
df_filtered_multi = df[(df['Age'] > 25) & (df['Score'] > 80)]
print(df_filtered_multi)
输出:
Name Age City Score1 Bob 27 Los Angeles 92
3 David 32 Houston 88
2. 基于标签筛选
可以使用loc
方法基于标签进行筛选。
2.1 单标签筛选
# 筛选Name为'Alice'的行
df_filtered_loc = df.loc[df['Name'] == 'Alice']
print(df_filtered_loc)
输出:
Name Age City Score0 Alice 24 New York 85
2.2 多标签筛选
# 筛选Name为'Alice'或'Bob'的行
df_filtered_loc_multi = df.loc[(df['Name'] == 'Alice') | (df['Name'] == 'Bob')]
print(df_filtered_loc_multi)
输出:
Name Age City Score0 Alice 24 New York 85
1 Bob 27 Los Angeles 92
3. 基于位置筛选
可以使用iloc
方法基于位置进行筛选。
3.1 单位置筛选
# 筛选第一行
df_filtered_iloc = df.iloc[0]
print(df_filtered_iloc)
输出:
Name Alice
Age 24
City New York
Score 85
Name: 0, dtype: object
3.2 多位置筛选
# 筛选第一行和第三行
df_filtered_iloc_multi = df.iloc[[0, 2]]
print(df_filtered_iloc_multi)
输出:
Name Age City Score0 Alice 24 New York 85
2 Charlie 22 Chicago 78
4. 使用query
方法筛选
Pandas提供了query
方法,可以使用类似SQL的语法进行筛选。
# 使用query方法筛选Age大于25的行
df_filtered_query = df.query('Age > 25')
print(df_filtered_query)
输出:
Name Age City Score1 Bob 27 Los Angeles 92
3 David 32 Houston 88