掌握 Pandas DataFrame 的复杂过滤技巧

准备工作

在开始之前,我们需要先安装 Pandas 包。你可以使用以下命令进行安装:

复制代码
pip install pandas

安装好所需的包后,让我们正式进入主题。


Pandas DataFrame 复杂过滤

DataFrame 是 Pandas 中用于存储和操作数据的对象。它非常强大,因为我们可以利用条件、逻辑运算符和 Pandas 的函数对数据进行过滤。

让我们先创建一个简单的 DataFrame 对象:

复制代码
import pandas as pd

df = pd.DataFrame({
    'Name': ['Alice', 'Leah', 'Jessica', 'Kenny', 'Brad'],
    'Age': [50, 27, 22, 30, 40],
    'Salary': [100000, 154000, 120000, 78000, 88000],
    'Occupation': ['Doctor', 'Soldier', 'Doctor', 'Accountant', 'Florist']
})

接下来,我们将学习如何对这些示例数据进行过滤。首先,可以根据特定条件进行数据筛选:

复制代码
df[df['Age'] > 30]

输出:

复制代码
    Name  Age  Salary Occupation
0  Alice   50  100000     Doctor
4   Brad   40   88000    Florist

我们也可以结合 And(&)运算符来组合多个条件:

复制代码
df[(df['Age'] > 25) & (df['Salary'] < 100000)]

输出:

复制代码
    Name  Age  Salary  Occupation
3  Kenny   30   78000  Accountant
4   Brad   40   88000     Florist

同样地,也可以用 Or(|)运算符组合条件:

复制代码
df[(df['Salary'] < 100000) | (df['Occupation'] == 'Soldier')]

输出:

复制代码
    Name  Age  Salary  Occupation
1   Leah   27  154000     Soldier
3  Kenny   30   78000  Accountant
4   Brad   40   88000     Florist

此外,我们还可以利用字符串函数进行数据过滤。例如,筛选出某列包含特定值的数据:

复制代码
df[df['Occupation'].str.contains('Sol')]

输出:

复制代码
    Name  Age  Salary Occupation
1  Leah   27  154000    Soldier

如果你需要按照特定字符串值进行过滤,可以使用以下方法:

复制代码
df[df['Occupation'].isin(['Doctor', 'Florist'])]

输出:

复制代码
      Name  Age  Salary Occupation
0    Alice   50  100000     Doctor
2  Jessica   22  120000     Doctor
4     Brad   40   88000    Florist

还可以通过 lambda 函数对数据进行过滤:

复制代码
df[df['Name'].apply(lambda x: len(x) > 5)]

输出:

复制代码
      Name  Age  Salary Occupation
2  Jessica   22  120000     Doctor

如果你想简化操作,可以使用 query 方法来过滤数据:

复制代码
df.query('Age < 30 and Salary > 100000')

输出:

复制代码
      Name  Age  Salary Occupation
1     Leah   27  154000    Soldier
2  Jessica   22  120000     Doctor

最后,我们可以将前面学到的各种过滤条件进行组合:

复制代码
df[(df['Age'] > 30) & (
    (df['Salary'] > 60000) | 
    (df['Occupation'].str.contains('Doc')))]

输出:

复制代码
    Name  Age  Salary Occupation
0  Alice   50  100000     Doctor
4   Brad   40   88000    Florist

掌握这些过滤函数,将大大提升你的数据分析能力。

相关推荐
叫我:松哥3 小时前
python案例:基于python 神经网络cnn和LDA主题分析的旅游景点满意度分析
人工智能·python·神经网络·数据挖掘·数据分析·cnn·课程设计
2202_756749694 小时前
01 基于sklearn的机械学习-机械学习的分类、sklearn的安装、sklearn数据集及数据集的划分、特征工程(特征提取与无量纲化、特征降维)
人工智能·python·机器学习·分类·sklearn
王者鳜錸4 小时前
PYTHON从入门到实践-18Django从零开始构建Web应用
前端·python·sqlite
冗量4 小时前
PPT自动化 python-pptx - 8: 文本(text)
python·自动化·powerpoint
超级晒盐人5 小时前
用落霞归雁的思维框架推导少林寺用什么数据库?
java·python·系统架构·学习方法·教育电商
AI_RSER5 小时前
第一篇:【Python-geemap教程(三)上】3D地形渲染与Landsat NDVI计算
开发语言·python·3d·信息可视化·遥感·gee
WSSWWWSSW6 小时前
Python编程基础与实践:Python循环结构基础
开发语言·python
im_AMBER6 小时前
学习日志25 python
开发语言·python·学习
Blossom.1187 小时前
基于深度学习的医学图像分析:使用DeepLabv3+实现医学图像分割
人工智能·python·深度学习·yolo·目标检测·机器学习·迁移学习
花酒锄作田8 小时前
[python]基于动态实例的命令处理设计
python