如何在 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 中的选定列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注