如何检查Python数据帧列中的第一个字符是否为数字
我在Python数据帧中有一些地址信息,我想检查其中一列的第一个字符是否是数字。我发现了类似的查询,但在数据帧中什么都没有。我可以使用以下方法提取第一个字符,没有问题:如何检查Python数据帧列中的第一个字符是否为数字,python,dataframe,Python,Dataframe,我在Python数据帧中有一些地址信息,我想检查其中一列的第一个字符是否是数字。我发现了类似的查询,但在数据帧中什么都没有。我可以使用以下方法提取第一个字符,没有问题: check = df['ADDRESS_LINE_1'].str[0] 但是如果我尝试 check = df['ADDRESS_LINE_1'].str[0].isdigit() 我得到了错误 'Series' object has no attribute 'isdigit' 我找不到在数据帧中工作的等效代码。我还尝试使
check = df['ADDRESS_LINE_1'].str[0]
但是如果我尝试
check = df['ADDRESS_LINE_1'].str[0].isdigit()
我得到了错误
'Series' object has no attribute 'isdigit'
我找不到在数据帧中工作的等效代码。我还尝试使用签入信息创建一个新列,但这会导致相同的错误。感谢您的帮助。您需要链接另一个
str
:
check = df['ADDRESS_LINE_1'].str[0].str.isdigit()
#^ here
例如:
In [127]:
s = pd.Series(['3asd', 'asd', '3423', 'a123'])
s.str[0].str.isdigit()
Out[127]:
0 True
1 False
2 True
3 False
dtype: bool
可以使用正则表达式专门针对第一个字符是否为数字:
In [128]:
s.str.match('^\d')
Out[128]:
0 True
1 False
2 True
3 False
dtype: bool
错误告诉您,
isdigit
不是系列的方法,是另一个选项,您可以使用从字符串开头匹配正则表达式的str.match
:
df
# A
#0 2sdf
#1 sd3
#2 sss
#3 45q
df.A.str.match("\d")
#0 True
#1 False
#2 False
#3 True
#Name: A, dtype: bool