Проверьте, являются ли последние символы столбца строки числами в Пандах - PullRequest
0 голосов
/ 05 мая 2018

У меня есть этот фрейм данных:

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

Если последние 5 символов строки в столбце «Код» являются числами, я хочу, чтобы «Марк» был «А», поэтому он будет выглядеть следующим образом:

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

Я пытаюсь использовать числовой , но постоянно получаю AttributeError: 'Series' object has no attribute 'isnumeric'

Может ли кто-нибудь помочь с этим?

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

Вы рядом. Хитрость заключается в том, чтобы использовать аксессор .str через pd.Series.str.isnumeric.

Затем сопоставьте с 'A' или пустой строкой через pd.Series.map:

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     
0 голосов
/ 05 мая 2018

Используя pd.Series.str.match, вы можете использовать

import numpy as np

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

Обратите внимание, что '.*? '- это не жадное совпадение с регулярным выражением, '\d{5}' проверяет 5 цифр, а '$' соответствует концу строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...