Pandas DataFrame.where(~)
使用布爾掩碼有選擇地替換源 DataFrame 中的值。
參數
1.cond
| boolean
或 array-like
或 callable
| optional
布爾掩碼,它是類似數組的結構(例如 Series 和 DataFrame),包含 True
或 False
作為其條目。
-
如果一個條目是
True
,則源中對應的值DataFrame將保持原樣. -
如果一個條目如果
False
,則源中對應的值DataFrame將被替換通過那個在other
.
如果一個callable
傳遞後,該函數將 DataFrame 作為參數並返回布爾值 DataFrame。此可調用不得修改源DataFrame.
2. other
| scalar
或 Series
或 DataFrame
或 function
| 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
是否引發或抑製錯誤:
值 |
說明 |
---|---|
|
允許出現錯誤。 |
|
發生錯誤時,返回源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
可調用函數接受要替換的值作為參數,並返回新的替換器。
相關用法
- Python PySpark DataFrame where方法用法及代碼示例
- Python Pandas DataFrame wide_to_long方法用法及代碼示例
- Python PySpark DataFrame withColumnRenamed方法用法及代碼示例
- Python PySpark DataFrame withColumn方法用法及代碼示例
- Python Pandas DataFrame empty屬性用法及代碼示例
- Python Pandas DataFrame pop方法用法及代碼示例
- Python Pandas DataFrame nsmallest方法用法及代碼示例
- Python Pandas DataFrame sample方法用法及代碼示例
- Python Pandas DataFrame items方法用法及代碼示例
- Python Pandas DataFrame max方法用法及代碼示例
- 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 Pandas DataFrame mean方法用法及代碼示例
- Python PySpark DataFrame filter方法用法及代碼示例
- Python Pandas DataFrame tz_convert方法用法及代碼示例
- Python Pandas DataFrame isin方法用法及代碼示例
- Python PySpark DataFrame collect方法用法及代碼示例
- Python PySpark DataFrame intersect方法用法及代碼示例
- Python PySpark DataFrame dtypes屬性用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas DataFrame | where method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。