зацикливание, чтобы вытащить первые 2 подстроки столбца в Python - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь вытянуть подстроку из столбца следующим образом:

target_column: 

PE123
DD123-HP123
HP123
373627HP23

Я хотел бы вытащить первые две строки / алфавита каждой записи, за исключением случаев, когда неталфавит в первых двух строках.В этом случае вытяните любой алфавит, который вы найдете в оставшейся части строки.Так что в случае 373627HP23, он будет тянуть HP.

Но проблема с чем-то вроде DD123-HP123.Мой цикл тянет HP вместо DD.

for index,row in df.iterrows():
    target_value = row['target_column']
    predefined_code = [HP]           
     for code in re.findall("[a-zA-Z]+", target_value):
         if (len(code)!=1) and not (code in predefined_code):
             possible_code = code

Что не так с моим кодом здесь?

Какой лучший код для написания цикла, чтобы в случае чего-токак DD123-HP123, он будет тянуть DD, а не HP?

1 Ответ

0 голосов
/ 10 октября 2018

Я полагаю, что вы можете использовать extract для возврата первого сопоставленного шаблона:

df['new'] = df['target_column'].str.extract("([a-zA-Z]+)")
print (df)
  target_column new
0         PE123  PE
1   DD123-HP123  DD
2         HP123  HP
3    373627HP23  HP
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...