当我们学习了如何使用 Pandas 进行数据的导入与导出,这为我们后续的数据处理打下了基础.此次我们将重点讨论数据选择与过滤.通过掌握这一部分的知识,你将能够轻松地从复杂的数据集中提取出所需的信息.接下来,我们将通过一些实例来逐步了解这些操作.
数据选择
数据选择主要是针对 Pandas 的 DataFrame
和 Series
进行的操作.我们可以通过行索引和列索引来选择数据.
基本选择
首先,载入一个示例数据集:
import pandas as pd
# 创建一个示例数据集
data = {
'姓名': ['张三', '李四', '王五', '赵六'],
'年龄': [25, 30, 22, 28],
'城市': ['北京', '上海', '广州', '深圳']
}
df = pd.DataFrame(data)
print(df)
上面的代码会生成如下 DataFrame
:
姓名 年龄 城市
0 张三 25 北京
1 李四 30 上海
2 王五 22 广州
3 赵六 28 深圳
列选择
我们可以通过列名称选择特定的列.使用 []
或 .loc
方法:
# 选择单列
print(df['姓名'])
# 选择多列
print(df[['姓名', '城市']])
输出结果如下:
0 张三
1 李四
2 王五
3 赵六
Name: 姓名, dtype: object
姓名 城市
0 张三 北京
1 李四 上海
2 王五 广州
3 赵六 深圳
行选择
可以使用 iloc
和 loc
方法来选择行.
# 选择第一行
print(df.iloc[0])
# 选择前两行
print(df.iloc[0:2])
# 使用 loc 选择第二行(注意 loc 是包含结束的)
print(df.loc[1])
输出结果为:
姓名 张三
年龄 25
城市 北京
Name: 0, dtype: object
姓名 年龄 城市
0 张三 25 北京
1 李四 30 上海
姓名 李四
年龄 30
城市 上海
Name: 1, dtype: object
数据过滤
数据过滤是指根据某些条件选择符合条件的数据行或列.
一维过滤
可以通过布尔索引来过滤数据.例如,我们想选择年龄大于 25 岁的人:
# 过滤年龄大于 25 的数据
age_filter = df[df['年龄'] > 25]
print(age_filter)
输出结果为:
姓名 年龄 城市
1 李四 30 上海
3 赵六 28 深圳
多条件过滤
我们还可以结合多个条件进行过滤.例如,选择年龄大于 25 并且城市是“上海”的人:
# 过滤年龄大于 25 且城市为“上海”的数据
multi_filter = df[(df['年龄'] > 25) & (df['城市'] == '上海')]
print(multi_filter)
输出结果为:
姓名 年龄 城市
1 李四 30 上海
选择特定行和列
我们也可以在过滤后选择特定的列.以下是一个结合 loc
的例子:
# 过滤后选择特定的列
filtered_result = df.loc[df['年龄'] > 25, ['姓名', '城市']]
print(filtered_result)
输出结果为:
姓名 城市
1 李四 上海
3 赵六 深圳
结论
在这一节中,我们学习了如何在 Pandas 数据框中选择和过滤数据.掌握这些基本操作之后,在数据分析的过程中你将能更有效地处理和筛选出你感兴趣的信息.这些技能为接下来的数据清洗与处理奠定了坚实的基础.
感谢大家的关注和支持!想了解更多编程精彩知识内容,请关注我的微信公众号:Python小胡子,有最新最前沿的的知识和人工智能AI与大家共享,同时,如果你觉得这篇文章对你有帮助,不妨点个赞,并点击关注.动动你发财的手,万分感谢!!!
原创文章不易,求点赞、在看、转发或留言,这样对我创作下一个精美文章会有莫大的动力!