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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。