哈喽,大家好,我是木头左!
筛选条件
基本筛选
要筛选DataFrame,首先需要了解筛选条件。Pandas提供了多种筛选条件,包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)等。
import pandas as pd
# 创建一个示例DataFrame
data = {'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# 筛选A列大于2的行
filtered_df = df[df['A'] > 2]
逻辑运算
Pandas支持使用逻辑运算符(如&
、|
、~
)来进行多个条件的筛选。
# 筛选A列大于2且B列小于40的行
filtered_df = df[(df['A'] > 2) & (df['B'] < 40)]
模糊匹配
Pandas还支持使用正则表达式进行模糊匹配。
# 筛选A列包含数字2的行
filtered_df = df[df['A'].str.contains('2')]
多列筛选
多列等于
要筛选多列等于某个值的行,可以使用==
运算符。
# 筛选A列等于1且B列等于10的行
filtered_df = df[(df['A'] == 1) & (df['B'] == 10)]
多列逻辑运算
要进行多列的逻辑运算,可以使用&
、|
、~
运算符。
# 筛选A列大于1且B列小于40的行
filtered_df = df[(df['A'] > 1) & (df['B'] < 40)]
多列模糊匹配
要进行多列的模糊匹配,可以使用str.contains()
方法。
# 筛选A列包含数字1且B列包含数字10的行
filtered_df = df[(df['A'].str.contains('1')) & (df['B'].str.contains('10'))]
高级筛选
使用函数进行筛选
Pandas还支持使用自定义函数进行筛选。
# 定义一个筛选函数,筛选A列的平方大于10的行
def square_greater_than_10(x):
return x**2 > 10
filtered_df = df[square_greater_than_10(df['A'])]
使用query()
方法进行筛选
Pandas 1.0.0版本引入了query()
方法,可以更方便地进行筛选。
# 筛选A列的平方大于10的行
filtered_df = df.query('A**2 > 10')
筛选结果的处理
筛选后,可能需要对筛选结果进行进一步处理,例如计算统计量、转换数据类型等。
计算统计量
# 计算筛选后的A列平均值
mean_a = filtered_df['A'].mean()
转换数据类型
# 将筛选后的B列转换为整数类型
filtered_df['B'] = filtered_df['B'].astype(int)
我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!