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  
相关推荐
小郑加油1 天前
python学习Day14:实际应用——pandas的筛选与保存
python·学习·pandas
Cloud_Shy6181 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十章 Python 驱动的 Excel 工具 上篇)
vscode·python·数据分析·excel·pandas
Cloud_Shy6181 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十章 Python 驱动的 Excel 工具 下篇)
笔记·python·学习·数据分析·excel·pandas
川冰ICE2 天前
Python爬虫实战⑳|Pandas时间序列,趋势分析一网打尽
爬虫·python·pandas
小郑加油2 天前
python学习Day13:实际应用——pandas 进阶计算
python·学习·pandas
码界筑梦坊3 天前
118-基于Python的游戏账号数据可视化分析系统
python·游戏·信息可视化·毕业设计·pandas·fastapi
川冰ICE3 天前
Python爬虫实战⑲|Pandas数据合并与重塑,多数据源整合
爬虫·python·pandas
Cloud_Shy6184 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第八章 使用读写包操作 Excel 文件 上篇)
python·数据分析·excel·pandas
Cloud_Shy6184 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第九章 Excel 自动化 上篇)
python·数据分析·excel·numpy·pandas
Cloud_Shy6184 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第八章 使用读写包操作 Excel 文件 下篇)
python·数据分析·excel·numpy·pandas