如何在 pandas 中使用where()函数(附示例)
Where()函数可用于替换 pandas DataFrame 中的某些值。
该函数使用以下基本语法:
df. where (cond, other=nan)
对于 pandas DataFrame 中cond为 True 的每个值,将保留原始值。
对于cond为 False 的每个值,原始值将替换为另一个参数指定的值。
以下示例展示了如何在实践中通过以下 pandas DataFrame 使用此语法:
import pandas as pd #define DataFrame df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame df points assists rebounds 0 25 5 11 1 12 7 8 2 15 7 10 3 14 9 6 4 19 12 6 5 23 9 5 6 25 9 9 7 29 4 12
示例1:替换整个DataFrame中的值
下面的代码展示了如何使用Where()函数将整个pandas DataFrame中所有不满足某个条件的值替换为NaN值。
#keep values that are greater than 7, but replace all others with NaN df. where (df>7) points assists rebounds 0 25 NaN 11.0 1 12 NaN 8.0 2 15 NaN 10.0 3 14 9.0 NaN 4 19 12.0 NaN 5 23 9.0 NaN 6 25 9.0 9.0 7 29 NaN 12.0
我们还可以使用其他参数将值替换为 NaN 以外的值。
#keep values that are greater than 7, but replace all others with 'low' df. where (df>7, other=' low ') points assists rebounds 0 25 low 11 1 12 low 8 2 15 low 10 3 14 9 low 4 19 12 low 5 23 9 low 6 25 9 9 7 29 low 12
示例2:替换特定DataFrame列中的值
下面的代码展示了如何使用Where()函数来替换DataFrame的特定列中所有不满足特定条件的值。
#keep values greater than 15 in 'points' column, but replace others with 'low' df[' points '] = df[' points ']. where (df[' points ']>15, other=' low ') #view DataFrame df points assists rebounds 0 25 5 11 1 low 7 8 2 low 7 10 3 low 9 6 4 19 12 6 5 23 9 5 6 25 9 9 7 29 4 12
您可以在此处找到pandaswhere()函数的完整在线文档。
其他资源
以下教程解释了如何使用 pandas 中的其他常用功能:
如何在Pandas中使用describe()函数
如何在 Pandas 中使用 idxmax() 函数
如何将函数应用于 Pandas 中的选定列