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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。