数据分析利器PANDAS,滤数据有妙招
2023-11-09 06:39:10
导语
数据分析是当今时代不可或缺的一项技能,无论您是学生、研究人员还是企业管理者,都需要掌握一定的数据分析能力,才能从浩如烟海的数据中提取有价值的信息。而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提供了多种过滤数据的方法,可以满足不同场景的需求。通过掌握这些过滤技巧,您可以轻松从数据中提取所需信息,从而提高数据分析效率。在实际工作中,您可能会遇到各种各样的数据过滤需求,需要灵活运用这些技巧来解决问题。希望本文对您的数据分析工作有所帮助。