下面是针对Python Pandas条件筛选功能的完整攻略。
什么是Python Pandas条件筛选功能
Python Pandas是一个非常流行的数据分析库,它提供了很多便捷的数据筛选、分组、聚合、合并等功能,其中条件筛选功能是最基础的部分之一。
条件筛选功能可以让我们根据一定的条件,从 dataframe 中选取指定的数据行或者列。在 Pandas 中,我们可以通过比较运算符(==, !=, <, >, <=, >=)或者布尔运算符(|, &)来构建条件表达式,然后在 dataframe 对象上进行筛选操作。
如何进行Python Pandas条件筛选
下面我们通过两个示例来演示如何使用 Pandas 进行条件筛选操作。
示例1:根据条件筛选数据行
假设有一个含有学生信息的 dataframe,如下所示:
import pandas as pd
df = pd.read_excel('students.xlsx')
df.head()
输出如下:
id name age sex major
0 1 Alice 20 F Physics
1 2 Bob 19 M Maths
2 3 Carol 18 F Maths
3 4 David 19 M Physics
4 5 Ellie 20 F Biology
现在,我们要通过筛选条件,选取所有年龄大于等于19岁的学生的信息。代码如下:
df_selected = df[df['age'] >= 19]
df_selected.head()
输出如下:
id name age sex major
0 1 Alice 20 F Physics
1 2 Bob 19 M Maths
3 4 David 19 M Physics
4 5 Ellie 20 F Biology
这里使用了 Pandas 的布尔索引(Boolean Indexing)功能,通过 df[‘age’] >= 19 来构建筛选条件,并对 dataframe 对象 df 进行筛选操作。
示例2:根据条件筛选数据列
假设我们还有一个含有股票信息的 dataframe,如下所示:
df_stock = pd.read_csv('stock.csv')
df_stock.head()
输出如下:
Date Open High Low Close Volume
0 4/1/21 34.4 34.5 33.6 33.9 1340000
1 4/2/21 34.0 35.0 33.8 34.7 1550000
2 4/5/21 34.5 35.1 33.5 33.7 1780000
3 4/6/21 33.6 34.0 33.0 33.5 1390000
4 4/7/21 33.2 33.6 33.0 33.2 1310000
.. ... ... ... ... ... ...
95 8/16/21 38.0 38.3 37.4 38.0 1710000
96 8/17/21 38.0 38.1 37.5 37.7 1240000
97 8/18/21 37.7 37.9 36.9 37.4 1560000
98 8/19/21 37.1 37.2 36.6 36.9 2010000
99 8/20/21 36.9 37.1 36.2 36.4 1870000
[100 rows x 6 columns]
假设我们只想要选取日期和股票收盘价这两列的数据。代码如下:
cols = ['Date', 'Close']
df_selected = df_stock[cols]
df_selected.head()
输出如下:
Date Close
0 4/1/21 33.9
1 4/2/21 34.7
2 4/5/21 33.7
3 4/6/21 33.5
4 4/7/21 33.2
这里通过构建一个列名的列表 cols,然后使用 df_stock[cols] 对 dataframe 对象 df_stock 进行子集的选取。
总结
以上就是Python Pandas条件筛选功能的完整攻略。通过比较运算符、布尔运算符以及 Pandas 提供的布尔索引和子集选取功能,可以轻松地完成大部分的筛选操作,提高数据处理效率,便捷提取我们所需的数据。