说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 判断字符串是否是数字主要有三种方法,分别为 isnumeric() 、isdigit() 和 isdecimal(),本文描述它们之间的区别。
简单理解为:
# 以下为简单理解,细节查看专题介绍
s.isalnum() # 所有字符都是数字或者字母
s.isalpha() # 所有字符都是字母
s.isdigit() # 所有字符都是数字
s.isnumeric() # 所有字符均为数值字符,包含汉字等
s.isdecimal() # 所有字符都是十进制字符
s.islower() # 所有字符都是小写
s.isupper() # 所有字符都是大写
s.istitle() # 所有单词都是首字母大写,像标题
s.isspace() # 所有字符都是空白字符、\t、\n、\r
s.isascii() # 字符都是 ASCII
s.isidentifier() # 为有效的标识符
s.isprintable() # 所有字符均为可打印字符
Python 判断字符串是否是数字主要有三种方法,分别为 isnumeric() 、isdigit() 和 isdecimal()。区别:
总结如下:
s.isdigit()
True # Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False # 汉字数字
s.isdecimal()
True # Unicode数字,,全角数字(双字节)
False # 罗马数字,汉字数字
s.isnumeric()
True # Unicode数字,全角数字(双字节),罗马数字,汉字数字
False # 无
我们来分别验证一下它们的返回内容:
import pandas as pd
import io
data = '''
字符
2
123
四
弐
½123
²3455
Ⅷ
abc123
4.14
-1
廿
万
億
'''
df = pd.read_csv(io.StringIO(data), sep='\s+')
df.index = df.字符
df.transform([str.isdecimal,
              str.isalnum,
              str.isalpha,
              str.isnumeric,
              str.isdigit,
              lambda x: pd.to_numeric(x, errors='coerce')])
'''
              字符
       isdecimal isalnum isalpha isnumeric isdigit <lambda>
字符
2           True    True   False      True    True     2.00
123         True    True   False      True    True   123.00
四          False    True    True      True   False      NaN
弐          False    True    True      True   False      NaN
½123       False    True   False      True   False      NaN
²3455      False    True   False      True    True      NaN
Ⅷ          False    True   False      True   False      NaN
abc123     False    True   False     False   False      NaN
4.14       False   False   False     False   False     4.14
-1         False   False   False     False   False    -1.00
廿          False    True    True      True   False      NaN
万          False    True    True      True   False      NaN
億          False    True    True      True   False      NaN
'''
更新时间:2023-11-09 08:23:09 标签:python 字符串 数字