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



Follow us on Facebook and Twitter for latest update.