У меня есть переменная с 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 не подбирается правильно?