Небольшой макет:
In [44]: c = ['c', 'g']
In [45]: df = pd.DataFrame({'county': list('abccdefggh')})
In [46]: df['county'] = df['county'].where(~df['county'].isin(c), 'N')
In [47]: df
Out[47]: county
0 a
1 b
2 N
3 N
4 d
5 e
6 f
7 N
8 N
9 h
Так что с помощью pd.Series.where ~df['county'].isin(c)
выбираются строки, которых нет в списке c
(~
в начале - операция «не»), вторым аргументом является значение, которое необходимо заменить (если условие имеет значение «Ложь»).
Для соответствия вашему примеру:
nypopdf['County'] = nypopdf['County'].where(~nypopdf['County'].isin(nyCounties), 'New York')
или
nypopdf['County'].where(~nypopdf['County'].isin(nyCounties), 'New York', inplace=True)
Полный пример:
nypopdf = pd.DataFrame({'County': ['Albany', 'Allegheny', 'Bronx']})
nyCounties = ["Kings", "Queens", "Bronx", "Richmond", "New York"]
print(nypopdf)
County
0 Albany
1 Allegheny
2 Bronx
nypopdf['County'].where(~nypopdf['County'].isin(nyCounties), 'New York', inplace=True)
print(nypopdf)
County
0 Albany
1 Allegheny
2 New York