开发手册 欢迎您!
软件开发者资料库

Python pandas.DataFrame.where函数方法的使用

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.where方法的使用。

DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None, errors='raise', try_cast=False) [source]

替换where条件为False的值。

参数:

cond bool Series/DataFrame, array-like

callable

condTrue时,保持原始值。当为False时,

other的相应值替换。如果cond是可调用的,

它将根据Series/DataFrame计算,

并且应该返回boolean Series/DataFramearray

可调用对象不能更改输入Series/DataFrame(尽管panda不检查它)。

other scalar, Series/DataFrame, 或 callable

cond为假的条目被替换为other的相应值。

如果其他变量是可调用的,

它将根据Series/DataFrame计算,

并且应该返回scalarSeries/DataFrame

可调用对象不能更改输入Series/DataFrame(尽管panda不检查它)。

inplace bool, 默认为False

是否对数据执行适当的操作。

axisint, 默认为 None

如有需要,调整axis。

levelint, 默认为 None

如果需要对齐level。

errorsstr, {‘raise’, ‘ignore’}, 默认为‘raise’

请注意,目前这个参数不会影响结果,

并且总是将其强制为合适的dtype

1) ‘raise’ : 允许引发异常。

2) ‘ignore’ : 抑制异常。错误时返回原始对象。

try_castbool, 默认为False

尝试将结果转换回输入类型(如果可能)。

返回值:

与调用者类型相同

Notes

where方法是if-then惯用语的应用。对于在主叫数据帧的每个元素中,如果condTrue的元件被使用; 否则,将使用DataFrame中的相应元素 otherDataFrame.where()的签名不同于numpy.where()df1.where(m, df2)大致相当于np.where(m, df1, df2) 

有关更多详细信息和示例,请参见indexing中的where文档 。

例子

                >>> s = pd.Series(range(5))>>> s.where(s > 0)0    NaN1    1.02    2.03    3.04    4.0dtype: float64              
                >>> s.mask(s > 0)0    0.01    NaN2    NaN3    NaN4    NaNdtype: float64              
                >>> s.where(s > 1, 10)0    101    102    23    34    4dtype: int64              
                >>> df = pd.DataFrame(np.arange(10).reshape(-1, 2), columns=['A', 'B'])>>> df   A  B0  0  11  2  32  4  53  6  74  8  9>>> m = df % 3 == 0>>> df.where(m, -df)   A  B0  0 -11 -2  32 -4 -53  6 -74 -8  9>>> df.where(m, -df) == np.where(m, df, -df)      A     B0  True  True1  True  True2  True  True3  True  True4  True  True>>> df.where(m, -df) == df.mask(~m, -df)      A     B0  True  True1  True  True2  True  True3  True  True4  True  True