pandas.Panel.where¶
-
Panel.
where
(cond, other=nan, inplace=False, axis=None, level=None, try_cast=False, raise_on_error=True)[source]¶ 返回一个与self相同形状的对象,其对应的条目来自self,其中cond为True,否则为其他对象。
参数: cond:boolean NDFrame,array或callable
如果cond是可调用的,则它在NDFrame上计算,并应返回布尔NDFrame或数组。callable不能改变输入NDFrame(虽然pandas不检查它)。
版本0.18.1中的新功能。
可调用可以用作cond。
其他:标量,NDFrame或可调用
如果other是可调用的,它将在NDFrame上计算,并应返回标量或NDFrame。callable不能改变输入NDFrame(虽然pandas不检查它)。
版本0.18.1中的新功能。
一个callable可以用作其他。
inplace:boolean,default False
是否对数据执行就地操作
axis:如果需要,对齐轴,默认无
级别:如果需要,对齐级别,默认无
try_cast:boolean,default False
尝试将结果转换回输入类型(如果可能),
raise_on_error:boolean,default True
是否针对无效的数据类型(例如,尝试在字符串上的位置)
返回: wh:与呼叫者类型相同
也可以看看
笔记
where方法是if-then成语的应用。对于调用DataFrame中的每个元素,如果
cond
是True
,则使用元素;否则使用来自DataFrameother
的相应元素。DataFrame.where()
的签名与numpy.where()
不同。Roughlydf1.where(m, df2)
is equivalent tonp.where(m, df1, df2)
.有关详细信息和示例,请参阅indexing中的
where
文档。例子
>>> s = pd.Series(range(5)) >>> s.where(s > 0) 0 NaN 1 1.0 2 2.0 3 3.0 4 4.0
>>> df = pd.DataFrame(np.arange(10).reshape(-1, 2), columns=['A', 'B']) >>> m = df % 3 == 0 >>> df.where(m, -df) A B 0 0 -1 1 -2 3 2 -4 -5 3 6 -7 4 -8 9 >>> df.where(m, -df) == np.where(m, df, -df) A B 0 True True 1 True True 2 True True 3 True True 4 True True >>> df.where(m, -df) == df.mask(~m, -df) A B 0 True True 1 True True 2 True True 3 True True 4 True True