Pandas DataFrame.mask(~)
将 DataFrame 中通过特定条件的所有值替换为所需值。
参数
1.cond
| array-like
共 booleans
布尔掩码,它是类似数组的结构(例如 Series 和 DataFrame),包含 True
或 False
作为其条目。
2. other
| number
或 string
或 Series
或 DataFrame
用于替换 cond
中具有 True
的条目的值。
3. inplace
| boolean
| optional
-
如果是
True
,那么该方法将直接修改源DataFrame,而不是创建新的DataFrame。 -
如果是
False
,则将创建并返回一个新的DataFrame。
默认情况下,inplace=False
。
4. axis
| int
| optional
执行该方法所沿的轴。默认情况下,axis=None
。
5. level
| int
| optional
执行该方法的级别。仅当您的源 DataFrame 是多索引时,这才有意义。
6. errors
| string
| optional
是否引发或抑制错误:
值 |
说明 |
---|---|
|
允许出现错误。 |
|
发生错误时,返回源DataFrame。 |
默认情况下,errors="raise"
。
7. try_cast
| boolean
| optional
是否将结果 DataFrame 转换为源 DataFrame 的类型。默认情况下,try_cast=False
。
返回值
DataFrame
,其值根据您的参数进行替换。请注意,形状与源 DataFrame 的形状相同。
例子
应用自定义蒙版
考虑以下 DataFrame :
df = pd.DataFrame({"A":[1,2], "B":[3,4]})
df
A B
0 1 3
1 2 4
我们的目标是使用 mask(~)
方法将所有大于 2
的值替换为值 5
。
为了使用 mask(~)
,我们首先需要像这样准备掩码:
df_mask = df > 2
A B
0 False True
1 False True
请注意,所有符合条件的值(值 > 2)如何标记为 True
,以及那些不标记为 False
的值。
最后,我们像这样应用掩码:
df.mask(df_mask, 5)
A B
0 1 5
1 2 5
我们看到所有大于 2
的值(在本例中为 3
和 4
)已被 5
替换。
应用 Pandas 内置遮罩
考虑以下 DataFrame :
df = pd.DataFrame({"A": [pd.np.NaN,2], "B":[3,pd.np.NaN]})
df
A B
0 NaN 3.0
1 2.0 NaN
我们的 df
包含两个缺失值。我们的目标是用值 5
替换这些缺失值。
我们可以利用 Panda DataFrame.isna(~)
方法,而不是像以前那样创建自己的布尔掩码:
df.isna()
A B
0 True False
1 False True
我们可以直接执行屏蔽操作,如下所示:
df.mask(df.isna(), 5)
A B
0 5.0 3.0
1 2.0 5.0
请注意,这只是一个示例,用于说明 mask(~)
的使用 - 要填充缺失值,请选择使用 fillna(~)
。
使用DataFrame作为替代品
在前面的两个示例中,我们只是用一个数字替换了满足特定条件的所有值。 mask(~)
方法还可以采用 DataFrame,当您有多个值作为替换者时使用该 DataFrame。
作为示例,请考虑以下 DataFrame:
df = pd.DataFrame({"A":[1,2],"B":[3,4]})
df
A B
0 1 3
1 2 4
再一次,假设我们要修改所有大于 2
的值。
我们像这样准备掩码:
df_mask = df > 2
A B
0 False True
1 False True
接下来,我们创建 DataFrame 用作替换器:
df_replacer = pd.DataFrame({"A":[5,6], "B":[7,8]})
df_replacer
A B
0 5 7
1 6 8
最后,使用mask(~)
方法来应用我们的掩码:
df.mask(df_mask, df_replacer)
A B
0 1 7
1 2 8
请注意 df
中在 df_mask
中标记为 True
的值如何被 df_replacer
中的相应条目替换。
相关用法
- Python Pandas DataFrame max方法用法及代码示例
- Python Pandas DataFrame mad方法用法及代码示例
- Python Pandas DataFrame mean方法用法及代码示例
- Python Pandas DataFrame mod方法用法及代码示例
- Python Pandas DataFrame memory_usage方法用法及代码示例
- Python Pandas DataFrame mode方法用法及代码示例
- Python Pandas DataFrame merge方法用法及代码示例
- Python Pandas DataFrame melt方法用法及代码示例
- Python Pandas DataFrame median方法用法及代码示例
- Python Pandas DataFrame min方法用法及代码示例
- Python Pandas DataFrame mul方法用法及代码示例
- Python Pandas DataFrame empty属性用法及代码示例
- Python Pandas DataFrame pop方法用法及代码示例
- Python Pandas DataFrame nsmallest方法用法及代码示例
- Python Pandas DataFrame sample方法用法及代码示例
- Python Pandas DataFrame items方法用法及代码示例
- Python Pandas DataFrame swaplevel方法用法及代码示例
- Python Pandas DataFrame agg方法用法及代码示例
- Python Pandas DataFrame copy方法用法及代码示例
- Python Pandas DataFrame pow方法用法及代码示例
- Python Pandas DataFrame insert方法用法及代码示例
- Python Pandas DataFrame lt方法用法及代码示例
- Python Pandas DataFrame all方法用法及代码示例
- Python Pandas DataFrame unstack方法用法及代码示例
- Python PySpark DataFrame filter方法用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | mask method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。