说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注: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
'''
更新时间:Nov. 9, 2023, 8:23 a.m. 标签:python 字符串 数字