Python Pandas条件筛选功能

  • Post category:Python

下面是针对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 提供的布尔索引和子集选取功能,可以轻松地完成大部分的筛选操作,提高数据处理效率,便捷提取我们所需的数据。