pandas.Series.str.isdecimal

Series.str.isdecimal(*args, **kwargs)[source]

Check whether all characters in each string are decimal.

This is equivalent to running the Python string method str.isdecimal() for each element of the Series/Index. If a string has zero characters, False is returned for that check.

Returns
Series or Index of bool

Series or Index of boolean values with the same length as the original Series/Index.

See also

Series.str.isalpha

Check whether all characters are alphabetic.

Series.str.isnumeric

Check whether all characters are numeric.

Series.str.isalnum

Check whether all characters are alphanumeric.

Series.str.isdigit

Check whether all characters are digits.

Series.str.isdecimal

Check whether all characters are decimal.

Series.str.isspace

Check whether all characters are whitespace.

Series.str.islower

Check whether all characters are lowercase.

Series.str.isupper

Check whether all characters are uppercase.

Series.str.istitle

Check whether all characters are titlecase.

Examples

Checks for Alphabetic and Numeric Characters

>>> s1 = pd.Series(['one', 'one1', '1', ''])
>>> s1.str.isalpha()
0     True
1    False
2    False
3    False
dtype: bool
>>> s1.str.isnumeric()
0    False
1    False
2     True
3    False
dtype: bool
>>> s1.str.isalnum()
0     True
1     True
2     True
3    False
dtype: bool

Note that checks against characters mixed with any additional punctuation or whitespace will evaluate to false for an alphanumeric check.

>>> s2 = pd.Series(['A B', '1.5', '3,000'])
>>> s2.str.isalnum()
0    False
1    False
2    False
dtype: bool

More Detailed Checks for Numeric Characters

There are several different but overlapping sets of numeric characters that can be checked for.

>>> s3 = pd.Series(['23', '³', '⅕', ''])

The s3.str.isdecimal method checks for characters used to form numbers in base 10.

>>> s3.str.isdecimal()
0     True
1    False
2    False
3    False
dtype: bool

The s.str.isdigit method is the same as s3.str.isdecimal but also includes special digits, like superscripted and subscripted digits in unicode.

>>> s3.str.isdigit()
0     True
1     True
2    False
3    False
dtype: bool

The s.str.isnumeric method is the same as s3.str.isdigit but also includes other characters that can represent quantities such as unicode fractions.

>>> s3.str.isnumeric()
0     True
1     True
2     True
3    False
dtype: bool

Checks for Whitespace

>>> s4 = pd.Series([' ', '\t\r\n ', ''])
>>> s4.str.isspace()
0     True
1     True
2    False
dtype: bool

Checks for Character Case

>>> s5 = pd.Series(['leopard', 'Golden Eagle', 'SNAKE', ''])
>>> s5.str.islower()
0     True
1    False
2    False
3    False
dtype: bool
>>> s5.str.isupper()
0    False
1    False
2     True
3    False
dtype: bool

The s5.str.istitle method checks for whether all words are in title case (whether only the first letter of each word is capitalized). Words are assumed to be as any sequence of non-numeric characters separated by whitespace characters.

>>> s5.str.istitle()
0    False
1     True
2    False
3    False
dtype: bool