У меня есть датафрейм следующим образом.
d = {'ID' : ['123456789012345678', '3456789012345678']
}
df = pd.DataFrame(d)
с выводом как
ID
0 123456789012345678
1 3456789012345678
Я хотел бы создать новый столбец is_valid
такой, что если длина ID value
is 18
затем true
else false
то есть ожидаемый результат равен
ID is_valid
0 123456789012345678 Yes
1 3456789012345678 No
Теперь я использую регулярное выражение следующим образом
expr = '^[0-9]{18}$'
df['is_valid'] = np.where(df['ID'].str.match(expr), 'Yes', 'No')
Есть ли что-нибудь лучше?способ достичь этого?