Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查Python数据帧列中的第一个字符是否为数字_Python_Dataframe - Fatal编程技术网

如何检查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' 我找不到在数据帧中工作的等效代码。我还尝试使

我在Python数据帧中有一些地址信息,我想检查其中一列的第一个字符是否是数字。我发现了类似的查询,但在数据帧中什么都没有。我可以使用以下方法提取第一个字符,没有问题:

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