当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pandas DataFrame where方法用法及代码示例


Pandas DataFrame.where(~) 使用布尔掩码有选择地替换源 DataFrame 中的值。

参数

1.cond | booleanarray-likecallable | optional

布尔掩码,它是类似数组的结构(例如 Series 和 DataFrame),包含 TrueFalse 作为其条目。

  • 如果一个条目是True,则源中对应的值DataFrame将保持原样.

  • 如果一个条目如果False,则源中对应的值DataFrame将被替换通过那个在other.

如果一个callable传递后,该函数将 DataFrame 作为参数并返回布尔值 DataFrame。此可调用不得修改源DataFrame.

2. other | scalarSeriesDataFramefunction | optional

用于替换 cond 中具有 True 的条目的值。

如果通过callable。然后该函数接受要替换的值作为参数,并返回一个新的标量、Series 或 DataFrame 作为替换器。再次强调,此可调用不得修改源 DataFrame。

3. inplace | boolean | optional

是否就地执行该方法。就地方法意味着它们将直接修改源DataFrame,而不创建和返回新的 DataFrame。默认情况下,inplace=False

4. axis | int | optional

执行该方法所沿的轴。默认情况下,axis=None

5. level | int | optional

执行该方法的级别。仅当您的源 DataFrame 是多索引时,这才有意义。

6. errors | string | optional

是否引发或抑制错误:

说明

"raise"

允许出现错误。

"ignore"

发生错误时,返回源DataFrame。

默认情况下,errors="raise"

7. try_cast | boolean | optional

是否将结果 DataFrame 转换为源 DataFrame 的类型。默认情况下,try_cast=False

返回值

一个DataFrame

例子

基本用法

考虑以下 DataFrame :

df = pd.DataFrame({"A":[3,4],"B":[5,6]})
df



   A  B
0  3  5
1  4  6

假设我们有以下 DataFrame 作为布尔掩码:

df_mask = pd.DataFrame({"A":[True,False],"B":[False,True]})
df_mask



   A      B
0  True   False
1  False  True

然后,我们调用 where(~) 来选择性地替换 df 中的值,其中 df_mask 中的相应条目是 False

df.where(df_mask, 10)



   A   B
0  3   10
1  10  6

传入可调用的 cond

考虑与之前相同的DataFrame:

df = pd.DataFrame({"A":[3,4],"B":[5,6]})
df



   A  B
0  3  5
1  4  6

我们还可以传入一个函数,如下所示,而不是指定一个类似数组的掩码作为第一个参数:

def foo(my_df):
 return my_df > 4
df.where(foo, 10)



   A   B
0  10  5
1  10  6

这里,函数foo接受整个DataFrame作为参数,并返回布尔值DataFrame。同样,布尔值 True 意味着相应的值将保持不变,同时对 False 进行替换。

请注意,前面的代码片段可以使用 lambda 紧凑地编写:

df.where(lambda x : x > 4, 10)



   A   B
0  10  5
1  10  6

传递给其他人可调用

考虑与之前相同的DataFrame:

df = pd.DataFrame({"A":[3,4],"B":[5,6]})
df



   A  B
0  3  5
1  4  6

假设我们有一个如下所示的掩码:

my_mask = [[True,False],[True,False]]
my_mask



[[True, False],
 [True, False]]

让我们为 other 参数传递一个可调用函数:

df.where(my_mask, lambda x : x + 10)



   A  B
0  3  15
1  4  16

可调用函数接受要替换的值作为参数,并返回新的替换器。

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | where method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。