pandas where 多条件

在数据处理和分析中,我们经常需要根据不同的条件对数据进行筛选和处理。pandas 是一个强大的数据分析库,提供了丰富的数据操作方法,其中 where 方法可以根据给定的条件对数据进行筛选。
pandas where 方法简介
pandas 中的 where 方法可以根据指定的条件对数据进行筛选,返回符合条件的数据,不满足条件的数据将被替换为指定的值。具体语法如下:
DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None, errors='raise', try_cast=False, raise_on_error=None)
cond:表示筛选条件,可以是一个布尔值的数组,也可以是一个条件表达式。other:不符合条件时替换的值,默认为np.nan。inplace:是否在原数据上进行替换,如果设为True,则会直接在原数据上进行替换,不会返回新的 DataFrame。axis:指定对哪个轴进行筛选,默认为None。level:对指定的行或列层级进行筛选,默认为None。errors:指定处理错误的方式,默认为'raise'。try_cast和raise_on_error:用于控制类型转换和错误处理。
pandas where 多条件筛选
在实际的数据分析中,我们往往需要根据多个条件对数据进行筛选。例如,选择身高大于 170cm 且体重小于 70kg 的人员信息。此时,可以使用 pandas 的 where 方法结合逻辑运算符来实现多条件筛选。
下面通过一个示例来演示如何使用 pandas 的 where 方法进行多条件筛选:
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Height': [175, 168, 180, 165, 172],
'Weight': [60, 75, 65, 70, 68]
}
df = pd.DataFrame(data)
print("原始数据:\n", df)
# 多条件筛选
condition1 = df['Height'] > 170
condition2 = df['Weight'] < 70
result = df.where(condition1 & condition2).dropna()
print("筛选结果:\n", result)
在上面的示例中,我们首先创建了一个包含姓名、身高和体重信息的 DataFrame,并打印输出了原始数据。接着定义了两个条件 condition1 和 condition2,分别表示身高大于 170cm 和体重小于 70kg 的条件。然后,利用逻辑运算符 & 组合了两个条件,通过 where 方法进行多条件筛选,并使用 dropna() 方法去掉缺失值,最后打印输出了筛选结果。
下面是上述代码的运行结果:
原始数据:
Name Height Weight
0 Alice 175 60
1 Bob 168 75
2 Charlie 180 65
3 David 165 70
4 Eve 172 68
筛选结果:
Name Height Weight
4 Eve 172.0 68.0
从上面的运行结果可以看出,根据身高大于 170cm 且体重小于 70kg 的条件,成功筛选出了符合条件的数据,结果只包含了身高为 172cm 、体重为 68kg 的人员信息。
总结
pandas 的 where 方法可以方便地根据给定的条件对数据进行筛选,实现了灵活的数据处理功能。通过合理地组合条件和逻辑运算符,可以实现多条件的数据筛选,满足不同场景下的分析需求。在实际应用中,我们可以根据具体的业务逻辑和需求,灵活运用 pandas 的数据操作方法,处理和分析数据。
极客教程