Pandas 8-数据筛选过滤

1. 基于条件筛选

1.1 单条件筛选

可以使用布尔索引来筛选满足特定条件的数据。

python 复制代码
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 多条件筛选

可以使用逻辑运算符(&表示与,|表示或)来组合多个条件进行筛选。

python 复制代码
# 筛选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 单标签筛选
python 复制代码
# 筛选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 多标签筛选
python 复制代码
# 筛选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 单位置筛选
python 复制代码
# 筛选第一行  
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 多位置筛选
python 复制代码
# 筛选第一行和第三行  
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的语法进行筛选。

python 复制代码
# 使用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  
相关推荐
淼澄研学5 小时前
Python自动化办公实操:基于pandas与requests的5个提效场景解析
python·自动化·pandas
Y3815326626 天前
serpbase + Pandas + Jupyter 数据分析实战
jupyter·数据分析·pandas
元Y亨H7 天前
numpy与pandas 的介绍
numpy·pandas
小大宇8 天前
python pandas dataFrame sqlAlchemy案例
python·pandas
chouchuang9 天前
day-040-Pandas可视化与实战
pandas
chouchuang12 天前
day-037-Pandas数据读取
pandas
benchmark_cc13 天前
如何用 Python 进行多周期 K 线合成与时区对齐?基于 QuantDash 与 Pandas 的量化数据清洗实战(附 GitHub 源码)
开发语言·python·github·盯盘·pandas·quantdash·量化数据
梅雅达编程笔记15 天前
零基础学 Python 第14章 | 模块、包与第三方库
开发语言·python·django·numpy·pandas
梅雅达编程笔记15 天前
零基础学 Python 第15章 | 类与对象:面向对象编程入门
开发语言·python·django·numpy·pandas
benchmark_cc15 天前
Python 量化核心基础:前复权、后复权与不复权有什么区别?基于 QuantDash 的数据处理与回测避坑指南
开发语言·python·pandas·量化策略·量化交易·quantdash