1. 使用布尔索引进行单条件筛选布尔索引是Pandas中进行数据筛选的最基本方法之一。它允许你通过比较操作符直接在DataFrame的列上创建一个布尔序列,然后使用这个布尔序列来筛选数据。示例代码:i...
布尔索引是Pandas中进行数据筛选的最基本方法之一。它允许你通过比较操作符直接在DataFrame的列上创建一个布尔序列,然后使用这个布尔序列来筛选数据。
import pandas as pd
# 创建示例数据
data = { '姓名': ['张三', '李四', '王五', '赵六'], '年龄': [19, 22, 18, 21], '成绩': [88, 92, 75, 85]
}
df = pd.DataFrame(data)
# 筛选出年龄大于20岁的学生
filtered_df = df[df['年龄'] > 20]
print(filtered_df) 姓名 年龄 成绩
1 李四 22 92
3 赵六 21 85当需要根据多个条件筛选数据时,可以使用逻辑运算符(如&(与)、|(或)、~(非))来组合条件。
# 筛选出年龄大于20岁且成绩大于85的学生
filtered_df = df[(df['年龄'] > 20) & (df['成绩'] > 85)]
print(filtered_df) 姓名 年龄 成绩
1 李四 22 92loc和iloc是Pandas中用于根据标签或整数索引访问DataFrame的行和列的方法。loc允许使用标签索引,而iloc仅使用整数索引。
# 使用loc筛选城市为'New York'的行
filtered_df = df.loc[df['城市'] == 'New York']
print(filtered_df)
# 使用iloc筛选第1到第3行的数据
filtered_df = df.iloc[1:3]
print(filtered_df) 姓名 年龄 成绩
1 李四 22 92
2 王五 18 75
3 赵六 21 85在某些情况下,你可能需要对DataFrame中的数据进行复杂的筛选。这时,可以使用apply函数结合isin函数来实现。
# 假设我们有一个包含学生姓名和班级的DataFrame
data = { '姓名': ['张三', '李四', '王五', '赵六'], '班级': ['一班', '二班', '一班', '三班']
}
df = pd.DataFrame(data)
# 筛选出班级为'一班'的学生
filtered_df = df[df['班级'].apply(lambda x: x in ['一班'])]
print(filtered_df) 姓名 班级
0 张三 一班
2 王五 一班query方法是Pandas中的一种高级筛选方法,它允许你使用类似SQL的语法来筛选数据。
# 使用query方法筛选年龄大于20岁且成绩大于85的学生
filtered_df = df.query('年龄 > 20 and 成绩 > 85')
print(filtered_df) 姓名 年龄 成绩
1 李四 22 92通过掌握这5个高效技巧,你可以轻松地在Python中进行数据筛选,从而提升数据处理能力。