检查字符串列的最后一个字符是否是Pandas中的数字

2024-10-03 15:33:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个数据帧:

   Code               Mark
0  Abd 43212312312   
1  Charles de Gaulle
2  Carlitos 4132411  
3  Antonio

如果“代码”列中字符串的最后5个字符是数字,我希望“标记”是“A”,因此它将如下所示:

^{pr2}$

我试图使用isnumeric,但我经常遇到AttributeError:'Series' object has no attribute 'isnumeric'

有人能帮忙吗?在


Tags: 数据字符串代码标记codede数字mark
2条回答

你很接近。诀窍是通过^{}使用.str访问器。在

然后通过pd.Series.map映射到“A”或空字符串:

df['Mark'] = df['Code'].str[-5:]\
                       .str.isnumeric()\
                       .map({True: 'A', False: ''})

print(df)

              Code Mark
0   Abd43212312312    A
1  CharlesdeGaulle     
2  Carlitos4132411    A
3          Antonio     

使用^{},可以使用

import numpy as np

df['Mark'] = np.where(df.Code.str.match(r'.*?\d{5}$'), 'A', '')

注意,'.*?'是一个非贪心的regex匹配,'\d{5}'检查5个数字,'$'匹配字符串结尾。在

相关问题 更多 >