过滤熊猫数据框的不同方法
#python #datascience #data #dataanalysis

pandas是一种流行的开源python库,用于数据操作和分析。它有助于涉及清洁,探索,分析和可视化数据的数据分析过程。

在本文中,我们将介绍使用PANDAS进行过滤的各种方法。

数据过滤是我们在使用数据时可以执行的数据操作操作之一。用熊猫过滤类似于SQL中的某个子句或Microsoft Excel中的过滤器。

如果您已经使用了这些工具,那么您就会了解过滤的工作原理。
过滤器可用于选择数据子集。它也可以用来排除或从数据集中发现零值

这是过滤的一些示例

1。选择2020年以后该组织雇用的所有员工
2。选择在金融和市场部工作的所有男性雇员。
3。选择周三中午12点左右发生的所有交通事故
4。选择所有注册号为null

的学生

这些是根据我们的数据集和用例进行分析的一些现实世界中的示例。

注意:本教程假设您已经熟悉PANDAS用于数据分析的用法,并且可以区分其基础数据结构(即串联和数据框架)。

为了使本教程保持简单,我们将创建示例数据集。这将是为组织工作的员工的数据集。

import pandas as pd
employees_data = {
    'first_name': ['Jamie', 'Michael', 'James', 'Mark', 'Stones', 'Sharon', 'Jessica', 'Johnson'],
    'last_name': ['Johnson', 'Marley', 'Peterson', 'Henry', 'Walker', 'White', 'Mendy', 'Johnson'],
    'department': ['Accounting', 'Marketing', 'Engineering', 'HR', 'HR', 'Sales', 'Data Analytics', 'Accounting'],
    'date_of_hire': [2011, 2012, 2022, 2000, 2007, 2018, 2020, 2018],
    'gender': ['M','M','M','M','F','F','M','F'],
    'salary': [10000,87500,77000,44500,90000,45000,25000,65000],
    'national_id': [22123,78656,98976,12765, None, None,56432,98744],
    'emp_id': ['Emp22', 'Emp54', 'Emp77', 'Emp99', 'Emp98', 'Emp01', 'Emp36', 'Emp04']
}

employees_df = pd.DataFrame(data=employees_data)

pandas dataframe

在熊猫中,有不止一种操作方法。熊猫提供了多种过滤数据的方法。

它们包括:

isin()
此方法提供了一种应用单一或多个条件进行过滤的方法。

employees_df[employees_df['department'].isin(['Marketing'])]

isin method 1

employees_df[employees_df['department'].isin(['Marketing','HR'])]

isin method 2

逻辑操作员
我们可以使用可用的逻辑运算符来过滤数据子集

employees_df[employees_df['salary'] > 30000]

Logical operators

在这里,我们过滤了薪水高于30000的员工。

可能会出现我们必须在多种条件下过滤数据的情况。逻辑运算符也使它成为可能。

employees_df[(employees_df['salary'] > 30000) & (employees_df['department'] == 'Marketing')]

multiple logical operators
对于在营销部门工作的所有薪水超过30000的员工

您还可以使用其他逻辑运算符,例如小于(<),大于(>),等于(=),不等于(!=)等。

查询功能
查询函数以表达式为参数,该参数评估用于过滤数据框的布尔值。

employees_df.query("department == 'Marketing'")

query function

我们也可以根据多种条件查询

employees_df.query("department == 'Marketing' and date_of_hire > 2006")

multiple query method

str登录
熊猫使使用字符串值很容易工作。使用STR登录器,我们可以过滤以获取其值为字符串的记录。

employees_df[employees_df['department'].str.contains("M")]

str contains method

employees_df[employees_df['department'].str.startswith("M")]

str startswith method

nlarem and nsmallest
大多数时候,我们只需要列中最高或最低值的记录。
这些方法使它成为可能。我们可以过滤最高3或最低的3薪。

employees_df.nlargest(3, 'salary')

nlargest method

employees_df.nsmallest(3, 'salary')

nsmallest method

tilde标志(〜)
用于逆转过滤条件中使用的逻辑

employees_df[~employees_df['department'].str.contains("A")]

Tilde method

employees_df[~employees_df['department'].isin(['Marketing','HR'])]

Tilde multiple parameters

isnull | notnull
使用ISNULL方法,我们可以返回具有NAN值的记录并将其标记为删除。使用notnull方法,我们可以过滤不包含NAN值的记录。

employees_df[employees_df['national_id'].isnull()]

isnull method

employees_df[employees_df['national_id'].notnull()]

notnull method

过滤
使用此方法,我们还可以过滤数据子集。

employees_df.filter(items=['first_name', 'department'],axis=1)

filter method 1

使用正则索引以5或8开头的滤波器。

employees_df.filter(regex='5|8', axis=0)

filter method 2

过滤索引为6
的数据框

employees_df.filter(like='6', axis=0)

Filter method 3

在本教程中,我们讨论了过滤行的一些不同方法,以返回熊猫数据框架的数据子集。
掌握大熊猫并擅长数据操纵的唯一方法是通过实践。
我确实希望您能抽出时间练习。

Twitter or LinkedIn 上与我联系,我还分享了一些有用的数据分析提示