Вложение списка в значение для словаря

#python #csv

Вопрос:

Я пытаюсь создать код, который сортирует несколько городов по группам в зависимости от их температуры в определенный день. Группа создается с шагом 5 градусов Цельсия, который начинается с 0. Таким образом, от 0 до (но исключая) 5, это группа 1, от 5 до (но исключая 10) называется группой 2. Я не уверен, как это исправить, не мог бы кто-нибудь указать мне правильное направление, пожалуйста?

Мой код до сих пор:

 cities_per_temp_bin = {} #K is bin, V is city
is_first_line = True
city = []
for row in open("climate_data_Dec2017.csv"):
  if is_first_line:
    is_first_line = False
  else:
    values = row.split(",")
    date = values[0]
    if date == "2017-12-25":
      cities = values[2].split()
      temp = float(values[5])
      group = int(temp//5)
      for line in cities:
        city.append(cities)
        if city not in group: #Error: TypeError: argument of type 'int' is not iterable
        cities_per_temp_bin = city
          
      
for key in sorted(cities_per_temp_bin):
  print(key, ":", sorted(cities_per_temp_bin[key]))
 

Комментарии:

1. list Тип Python не хэшируется, и поэтому list объекты не могут использоваться в качестве ключей в словаре.

2. Я рекомендую заглянуть в пакет Pandas.

3. Группа-это целочисленная переменная , в соответствии с вашим кодом ее температура, возможно, вам придется проверить город в словаре cities_per_temp_bin . Прикрепите CSV или firsr 2 строки CSV, чтобы мы могли изменить ваш код

4. Пожалуйста, добавьте несколько строк вашего CSV-файла к вашему вопросу, чтобы мы могли скопировать/вставить и протестировать ваш код

5. вы пробовали вложенную иерархию словарей?