8 数据选择与过滤

在上一篇中,我们学习了如何使用 Pandas 进行数据的导入与导出,这为我们后续的数据处理打下了基础。此次我们将重点讨论数据选择与过滤。通过掌握这一部分的知识,你将能够轻松地从复杂的数据集中提取出所需的信息。接下来,我们将通过一些实例来逐步了解这些操作。

数据选择

数据选择主要是针对 Pandas 的 DataFrameSeries 进行的操作。我们可以通过行索引和列索引来选择数据。

基本选择

首先,载入一个示例数据集:

1
2
3
4
5
6
7
8
9
10
11
import pandas as pd

# 创建一个示例数据集
data = {
'姓名': ['张三', '李四', '王五', '赵六'],
'年龄': [25, 30, 22, 28],
'城市': ['北京', '上海', '广州', '深圳']
}

df = pd.DataFrame(data)
print(df)

上面的代码会生成如下 DataFrame

1
2
3
4
5
   姓名  年龄   城市
0 张三 25 北京
1 李四 30 上海
2 王五 22 广州
3 赵六 28 深圳

列选择

我们可以通过列名称选择特定的列。使用 [].loc 方法:

1
2
3
4
5
# 选择单列
print(df['姓名'])

# 选择多列
print(df[['姓名', '城市']])

输出结果如下:

1
2
3
4
5
6
7
8
9
10
11
0    张三
1 李四
2 王五
3 赵六
Name: 姓名, dtype: object

姓名 城市
0 张三 北京
1 李四 上海
2 王五 广州
3 赵六 深圳

行选择

可以使用 ilocloc 方法来选择行。

1
2
3
4
5
6
7
8
# 选择第一行
print(df.iloc[0])

# 选择前两行
print(df.iloc[0:2])

# 使用 loc 选择第二行(注意 loc 是包含结束的)
print(df.loc[1])

输出结果为:

1
2
3
4
5
6
7
8
9
10
11
12
13
姓名      张三
年龄 25
城市 北京
Name: 0, dtype: object

姓名 年龄 城市
0 张三 25 北京
1 李四 30 上海

姓名 李四
年龄 30
城市 上海
Name: 1, dtype: object

数据过滤

数据过滤是指根据某些条件选择符合条件的数据行或列。

一维过滤

可以通过布尔索引来过滤数据。例如,我们想选择年龄大于 25 岁的人:

1
2
3
# 过滤年龄大于 25 的数据
age_filter = df[df['年龄'] > 25]
print(age_filter)

输出结果为:

1
2
3
   姓名  年龄   城市
1 李四 30 上海
3 赵六 28 深圳

多条件过滤

我们还可以结合多个条件进行过滤。例如,选择年龄大于 25 并且城市是“上海”的人:

1
2
3
# 过滤年龄大于 25 且城市为“上海”的数据
multi_filter = df[(df['年龄'] > 25) & (df['城市'] == '上海')]
print(multi_filter)

输出结果为:

1
2
   姓名  年龄   城市
1 李四 30 上海

选择特定行和列

我们也可以在过滤后选择特定的列。以下是一个结合 loc 的例子:

1
2
3
# 过滤后选择特定的列
filtered_result = df.loc[df['年龄'] > 25, ['姓名', '城市']]
print(filtered_result)

输出结果为:

1
2
3
   姓名   城市
1 李四 上海
3 赵六 深圳

结论

在这一节中,我们学习了如何在 Pandas 数据框中选择和过滤数据。掌握这些基本操作之后,在数据分析的过程中你将能更有效地处理和筛选出你感兴趣的信息。这些技能为接下来的数据清洗与处理奠定了坚实的基础。

下一步

在下一篇文章中,我们将继续深入数据处理的另一重要方面:数据清洗与处理,包括处理缺失值、重复数据等问题。保持关注,继续我们的 Pandas 学习之旅!

8 数据选择与过滤

https://zglg.work/pandas-zero/8/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论