Try converting the city field to a string and then the options should populate for geographic role.
Also note that, filled maps won't be created for cities. They are applicable only for countries.
For cities, you could use shapes to display the information.
Hope this helps.
I'm actually surprised how Tableau even converted cities which are strings in your Excel sheet into a number field, in the first place.
It actually had them as strings to begin with - I converted them to "number" to assign the geographic role based on a tutorial on here. I am not sure why it isn't automatically recognizing the city and country and assigning the lat/long when I load the data? I feel like I am missing a step?
I just took few city names with respective country from your screen shot. And connect that with tableau, in my case tableau has recognised the country and city names and assign the geographical roles automatically. See the screen shot.
I guess some special characters present in your data that's why tableau unable to identify the geography.
If you share your data then we can analyse your data and try to give you the correct solution.