w3resource

Pandas Series: where() function

Series-where() function

The where() function is used to replace values where the condition is False.

Syntax:

Series.where(self, cond, other=nan, inplace=False, axis=None, level=None, errors='raise', try_cast=False)
Pandas Series where image
Name Description Type/Default Value Required / Optional
cond Where cond is True, keep the original value. Where False, replace with corresponding value from other. If cond is callable, it is computed on the Series/DataFrame and should return boolean Series/DataFrame or array. The callable must not change input Series/DataFrame (though pandas doesn’t check it). boolean Series/DataFrame, array-like, or callable Required
other Entries where cond is False are replaced with corresponding value from other. If other is callable, it is computed on the Series/DataFrame and should return scalar or Series/DataFrame. The callable must not change input Series/DataFrame (though pandas doesn’t check it). scalar, Series/DataFrame, or callable Required
inplace Whether to perform the operation in place on the data. bool
Default Value: False
Required
axis Alignment axis if needed. int
Default Value: None
Required
level Alignment level if needed. int
Default Value: None
Required
errors Note that currently this parameter won’t affect the results and will always coerce to a suitable dtype.
  • ‘raise’ : allow exceptions to be raised.
  • ‘ignore’ : suppress exceptions. On error return original object.
str, {‘raise’, ‘ignore’}
Default Value: ‘raise’
Required
try_cast Try to cast the result back to the input type (if possible). bool
Default Value: False
Required

Returns: Same type as caller

Notes: The where method is an application of the if-then idiom. For each element in the calling DataFrame, if cond is True the element is used; otherwise the corresponding element from the DataFrame other is used.

Example:

Python-Pandas Code:

import numpy as np
import pandas as pd
s = pd.Series(range(6))
s.where(s > 0)

Output:

0    NaN
1    1.0
2    2.0
3    3.0
4    4.0
5    5.0
dtype: float64

Python-Pandas Code:

import numpy as np
import pandas as pd
s = pd.Series(range(6))
s.mask(s > 0)

Output:

0    0.0
1    NaN
2    NaN
3    NaN
4    NaN
5    NaN
dtype: float64

Python-Pandas Code:

import numpy as np
import pandas as pd
s = pd.Series(range(6))
s.where(s > 2, 10)

Output:

0    10
1    10
2    10
3     3
4     4
5     5
dtype: int64

Python-Pandas Code:

import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(10).reshape(-1, 2), columns=['P', 'Q'])
df

Output:

  P	Q
0	0	1
1	2	3
2	4	5
3	6	7
4	8	9

Python-Pandas Code:

import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(10).reshape(-1, 2), columns=['P', 'Q'])
m = df % 3 == 0
df.where(m, -df)

Output:

   P	Q
0	 0	-1
1	-2	 3
2	-4	-5
3	 6	-7
4	-8	 9

Python-Pandas Code:

import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(10).reshape(-1, 2), columns=['P', 'Q'])
m = df % 3 == 0
df.where(m, -df) == np.where(m, df, -df)

Output:

     P	  Q
0	True	True
1	True	True
2	True	True
3	True	True
4	True	True

Python-Pandas Code:

import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(10).reshape(-1, 2), columns=['P', 'Q'])
m = df % 3 == 0
df.where(m, -df) == df.mask(~m, -df)

Output:

     P	Q
0	True	True
1	True	True
2	True	True
3	True	True
4	True	True

Previous: Series-truncate() function
Next: Replace values in Pandas Series



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/pandas/series/series-where.php