使用布尔条件过滤行
在本步骤中,你将学习最基本的过滤技术:布尔索引(boolean indexing)。此方法涉及创建一个布尔条件,该条件会返回一个包含 True 和 False 值的 Pandas Series。当你将此 Series 传递给 DataFrame 时,它只会返回值为 True 的那些行。
让我们开始过滤 DataFrame,找出所有年龄大于 30 的员工。
首先,在左侧编辑器中打开 main.py 文件。该文件已预先填充了示例 DataFrame。
现在,用以下代码替换 main.py 文件底部的现有 print 语句。此代码创建了一个布尔条件 df['Age'] > 30,并使用它来过滤 DataFrame。
## Filter for employees older than 30
older_than_30 = df[df['Age'] > 30]
print("Employees older than 30:")
print(older_than_30)
你完整的 main.py 文件现在应该如下所示:
import pandas as pd
import numpy as np
## Create a sample DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank'],
'Department': ['HR', 'HR', 'Sales', 'IT', 'IT', 'Finance'],
'Age': [25, 45, 38, 52, 29, 33],
'Salary': [50000, 80000, 75000, 95000, 62000, np.nan]
}
df = pd.DataFrame(data)
## Filter for employees older than 30
older_than_30 = df[df['Age'] > 30]
print("Employees older than 30:")
print(older_than_30)
现在,让我们运行脚本。打开终端并执行以下命令:
python3 main.py
你应该会看到以下输出,其中仅列出了年龄大于 30 的员工。
Employees older than 30:
Name Department Age Salary
1 Bob HR 45 80000.0
2 Charlie Sales 38 75000.0
3 David IT 52 95000.0
5 Frank Finance 33 NaN