Я могу ошибаться, но я думаю, что вы неправильно понимаете проблему.
То, что вы, похоже, делаете, это просто замените «_» на «-», что вы можете сделать следующей строкой:
df['native_region'] = df.native_country.str.replace('_', '-')
А потом, по моему опыту, более понятно работать так:
known_countries = ['Asia-East', 'Central-Asia', 'South-America', ...]
is_known = df['native_country'].isin(known_countries )
df.native_region[~known_countries] = 'Outlying-US'
Это также может работать, если вы работали с такими странами, как:
east_asia_countries = ['Japan', 'China', 'Korea']
isin_east_asia = df['native_country'].isin(east_asia_countries)
df.native_region[known_countries] = 'East-Asia'