首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

掌握 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

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

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O7_m9NcE13dtgSKeHcPUynAw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券