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  
相关推荐
benchmark_cc3 天前
批量获取量化数据时,如何设置合理的超时和重试机制?——QuantDash 高性能实战指南
开发语言·人工智能·python·pandas·量化·quantdash
2601_966949653 天前
使用 Pandas 读取批量数据时如何避免内存溢出?QuantDash 量化数据工程师避坑指南
开发语言·python·pandas·tushare·akshare·quantdash
三十岁老牛再出发4 天前
08.18每日总结
c++·python·numpy·pandas
虎头金猫7 天前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
Uncommon.8 天前
使用pandas处理csv并转为张量
pytorch·python·深度学习·pandas
STR_Liang10 天前
pandas.read_html 报错FileNotFoundError、OSError Traceback (most recent call last)
pandas
㳺三才人子11 天前
初探 Data Analysis - Matplotlib
python·plotly·pandas·matplotlib
quantdash_cc12 天前
告别自建 Requests/BS4 网页爬虫:基于 QuantDash 搭建零维保的高性能量化行情流水线
开发语言·爬虫·python·pandas·量化·quantdash
菜冻鱼12 天前
Python-sklearn-评估指标
开发语言·人工智能·python·机器学习·numpy·pandas·sklearn
菜冻鱼12 天前
Python-sklearn-模型选择
开发语言·人工智能·python·机器学习·numpy·pandas·sklearn