跳到主要内容

Pandas 数据选择

在数据分析中,选择数据是一个核心操作。Pandas 提供了多种灵活的方式来选择和操作数据。本文将介绍如何使用 Pandas 进行数据选择,包括通过标签、位置和条件筛选数据。

1. 通过标签选择数据

Pandas 提供了 loc 方法,允许我们通过行和列的标签来选择数据。

示例 1:选择单行数据

python
import pandas as pd

data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pd.DataFrame(data, index=['a', 'b', 'c'])

# 选择索引为 'a' 的行
selected_row = df.loc['a']
print(selected_row)

输出:

Name       Alice
Age 25
City New York
Name: a, dtype: object

示例 2:选择多行数据

python
# 选择索引为 'a' 和 'b' 的行
selected_rows = df.loc[['a', 'b']]
print(selected_rows)

输出:

      Name  Age         City
a Alice 25 New York
b Bob 30 Los Angeles

示例 3:选择特定列

python
# 选择 'Name' 和 'City' 列
selected_columns = df.loc[:, ['Name', 'City']]
print(selected_columns)

输出:

      Name         City
a Alice New York
b Bob Los Angeles
c Charlie Chicago

2. 通过位置选择数据

Pandas 提供了 iloc 方法,允许我们通过行和列的位置索引来选择数据。

示例 4:选择单行数据

python
# 选择第一行数据
selected_row = df.iloc[0]
print(selected_row)

输出:

Name       Alice
Age 25
City New York
Name: a, dtype: object

示例 5:选择多行数据

python
# 选择前两行数据
selected_rows = df.iloc[0:2]
print(selected_rows)

输出:

    Name  Age         City
a Alice 25 New York
b Bob 30 Los Angeles

示例 6:选择特定列

python
# 选择第一列和第二列
selected_columns = df.iloc[:, 0:2]
print(selected_columns)

输出:

      Name  Age
a Alice 25
b Bob 30
c Charlie 35

3. 通过条件筛选数据

Pandas 允许我们通过布尔条件来筛选数据。

示例 7:筛选年龄大于 30 的行

python
# 筛选年龄大于 30 的行
filtered_data = df[df['Age'] > 30]
print(filtered_data)

输出:

      Name  Age     City
c Charlie 35 Chicago

示例 8:多条件筛选

python
# 筛选年龄大于 25 且城市为 'Los Angeles' 的行
filtered_data = df[(df['Age'] > 25) & (df['City'] == 'Los Angeles')]
print(filtered_data)

输出:

  Name  Age         City
b Bob 30 Los Angeles

4. 实际应用场景

假设你有一个包含学生成绩的数据集,你需要筛选出数学成绩大于 90 分的学生。

python
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Math': [85, 92, 88, 95],
'Science': [90, 88, 92, 89]
}

df = pd.DataFrame(data)

# 筛选数学成绩大于 90 分的学生
top_math_students = df[df['Math'] > 90]
print(top_math_students)

输出:

    Name  Math  Science
1 Bob 92 88
3 David 95 89

5. 总结

在本文中,我们学习了如何使用 Pandas 进行数据选择。我们介绍了通过标签、位置和条件筛选数据的方法,并通过实际案例展示了这些方法的应用场景。掌握这些技巧将帮助你更高效地处理和分析数据。

6. 附加资源与练习

  • 练习 1:创建一个包含 5 行 3 列的数据框,尝试使用 lociloc 选择不同的行和列。
  • 练习 2:使用条件筛选,从一个包含学生成绩的数据集中筛选出科学成绩大于 85 分的学生。
提示

如果你想进一步学习 Pandas 数据选择的高级技巧,可以参考 Pandas 官方文档中的相关章节。