返回

数据分析利器PANDAS,滤数据有妙招

见解分享

导语

数据分析是当今时代不可或缺的一项技能,无论您是学生、研究人员还是企业管理者,都需要掌握一定的数据分析能力,才能从浩如烟海的数据中提取有价值的信息。而PANDAS则是Python中一个功能强大的数据分析库,它可以轻松实现数据清洗、数据转换、数据分析和数据可视化等操作。

在数据分析过程中,经常需要对数据进行过滤,以筛选出符合特定条件的记录。PANDAS提供了多种过滤数据的方法,可以满足不同场景的需求。接下来,我们将详细介绍这些过滤方法,帮助您轻松掌握PANDAS数据过滤技巧。

1. 使用query()方法

query()方法是PANDAS过滤数据最常用的方法之一,它可以通过传入一个布尔表达式来筛选数据。该表达式的语法类似于SQL中的WHERE子句,可以指定过滤条件。例如,以下代码过滤出所有年龄大于30岁的记录:

import pandas as pd

df = pd.DataFrame({
    "name": ["John", "Mary", "Bob", "Alice", "Tom"],
    "age": [25, 32, 40, 28, 35],
    "city": ["New York", "Los Angeles", "Chicago", "Houston", "Dallas"]
})

df_filtered = df.query("age > 30")

print(df_filtered)

输出结果:

   name  age city
1  Mary   32  Los Angeles
2  Bob   40  Chicago
4  Tom   35  Dallas

2. 使用loc()方法

loc()方法也可以用于过滤数据,它通过传入行索引或列索引来选择数据。例如,以下代码过滤出所有年龄大于30岁且居住在芝加哥的记录:

df_filtered = df.loc[(df["age"] > 30) & (df["city"] == "Chicago")]

print(df_filtered)

输出结果:

   name  age city
2  Bob   40  Chicago

3. 使用iloc()方法

iloc()方法与loc()方法类似,但它使用整数索引来选择数据。例如,以下代码过滤出前三行记录:

df_filtered = df.iloc[:3]

print(df_filtered)

输出结果:

   name  age city
0  John   25  New York
1  Mary   32  Los Angeles
2  Bob   40  Chicago

4. 使用isin()方法

isin()方法可用于过滤数据,以查看数据是否包含在指定值列表中。例如,以下代码过滤出所有姓名包含"o"的记录:

df_filtered = df[df["name"].isin(["John", "Bob", "Tom"])]

print(df_filtered)

输出结果:

   name  age city
0  John   25  New York
2  Bob   40  Chicago
4  Tom   35  Dallas

5. 使用notna()方法

notna()方法可用于过滤数据,以查看数据是否非空值。例如,以下代码过滤出所有年龄非空值的记录:

df_filtered = df[df["age"].notna()]

print(df_filtered)

输出结果:

   name  age city
0  John   25  New York
1  Mary   32  Los Angeles
2  Bob   40  Chicago
3  Alice   28  Houston
4  Tom   35  Dallas

6. 使用dropna()方法

dropna()方法可用于过滤数据,以删除空值记录。例如,以下代码删除所有包含空值的记录:

df_filtered = df.dropna()

print(df_filtered)

输出结果:

   name  age city
0  John   25  New York
1  Mary   32  Los Angeles
2  Bob   40  Chicago
4  Tom   35  Dallas

结束语

PANDAS提供了多种过滤数据的方法,可以满足不同场景的需求。通过掌握这些过滤技巧,您可以轻松从数据中提取所需信息,从而提高数据分析效率。在实际工作中,您可能会遇到各种各样的数据过滤需求,需要灵活运用这些技巧来解决问题。希望本文对您的数据分析工作有所帮助。