re.search, re.match с двумя столбцами в качестве аргумента - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть переменная с NaN и другим значением.Их число ниже

NaN                                   5101
PSYCHIATRIST - CLINICAL PSYCHOLOGY    1596
Name: PROV_CATGY_DESC, dtype: int64

(Первый вопрос: его значения либо NaN, либо символ, почему он вводится как int64? Я изменил его на astype (объект), но моя проблема ниже остается той же)

Сначала я попытался убрать начальные пробелы с помощью этой строки кода

df['PROV_CATGY_DESC']=df['PROV_CATGY_DESC'].str.strip()

Затем я протестировал это:

if (re.search('PSYCHIATRIST - CLINICAL PSYCHOLOGY', str(df['PROV_CATGY_DESC'].str.upper()))) :
    df['SPECShort']=1
else:
    df['SPECShort']=2  

Результат ниже:

1    6697
Name: SPECShort, dtype: int64

Последнее, я все же проверил это:

if (re.match('PSYCHIATRIST - CLINICAL PSYCHOLOGY', str(df['PROV_CATGY_DESC'].str.upper()))) :
    df['SPECShort']=1
else:
    df['SPECShort']=2  

Результат ниже:

2    6697
Name: SPECShort, dtype: int64

Но я подумал, что лишил ведущих пробелов, если таковые имеются, и PROV_CATGY_DESCдолжно начинаться с PSYCHIATRIST - CLINICAL PSYCHOLOGY

Во всяком случае, в обоих случаях re.match и re.search, почему NaN не подбирается правильно?

...