如何检查Python数据帧列中的第一个字符是否是数字

Sar*_*rah 2 python dataframe

我在 Python 数据框中有一些地址信息,我想检查其中一列的第一个字符是否是数字。我发现了类似的查询,但数据框中没有任何内容。我可以使用以下命令毫无问题地提取第一个字符:

check = df['ADDRESS_LINE_1'].str[0]
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试

check = df['ADDRESS_LINE_1'].str[0].isdigit()
Run Code Online (Sandbox Code Playgroud)

我收到错误

'Series' object has no attribute 'isdigit'
Run Code Online (Sandbox Code Playgroud)

我找不到等效的代码来让它在数据框中工作。我还尝试创建一个包含检查信息的新列,但这会导致相同的错误。任何帮助表示赞赏。

EdC*_*ica 5

你需要链接另一个str

check = df['ADDRESS_LINE_1'].str[0].str.isdigit()
                                   #^ here
Run Code Online (Sandbox Code Playgroud)

例子:

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
Run Code Online (Sandbox Code Playgroud)

您可以使用正则表达式来专门确定第一个字符是否为数字:

In [128]:
s.str.match('^\d')

Out[128]:
0     True
1    False
2     True
3    False
dtype: bool
Run Code Online (Sandbox Code Playgroud)

该错误告诉您这isdigit不是 的方法Seriesstr.isdigit