Итак, я читаю книгу курса Python Cra sh, и одним из его упражнений было нахождение собственного файла CSV и вывод его данных на карту мира с использованием Pygal. В предыдущих упражнениях мы отображали числа на карте, но сейчас я пытаюсь отобразить строки, каждая из которых называется «высокий доход», «низкий доход» и так далее. Пока у меня есть этот код:
import csv
import pygal
from pygal.maps.world import World
from country_codes import get_country_code
# Loading data
filename = 'metadata_country.csv'
with open(filename) as f:
children_list = csv.reader(f)
header_row = next(children_list)
incomes = {}
for data in children_list:
try:
country_code = get_country_code(data[4])
child_income = data[2]
except ValueError:
print("Data missing for " + country_code)
else:
incomes[country_code] = child_income
income_levels = ['High income', 'Lower middle income', 'Upper Middle income', 'Low income']
# Filtering the child incomes dictionary
children_high, children_upper_middle, children_lower_middle, children_low = {}, {}, {}, {}
for country, income in incomes.items():
if income == income_levels[0]:
children_high[country] = income
elif income == income_levels[1]:
children_lower_middle[country] = income
elif income == income_levels[2]:
children_upper_middle[country] = income
else:
children_low[country] = income
world_map = World()
world_map.title = 'Children income per country'
world_map.add('High income', children_high)
world_map.add('Upper Middle income', children_upper_middle)
world_map.add('Lower middle income', children_lower_middle)
world_map.add('Low income', children_low)
world_map.render_to_file('children_income.svg')
Но я получаю следующую ошибку:
File "C:\Users\Matheus\AppData\Roaming\Python\Python38\site-packages\pygal\graph\map.py", line 83, in _plot
ratio = .3 + .7 * (value - min_) / (max_ - min_)
TypeError: unsupported operand type(s) for -: 'str' and 'str'
Может кто-нибудь помочь мне решить, что с ним не так? Я новичок в Python и новичок в Pygal. Просто делаю это ради любопытства. Спасибо! При необходимости ссылка на файл .csv.