Я пытаюсь создать вложенный словарь из столбцов sqlite3 из базы данных, которую я создал на основе аниме, которое я смотрел (длина которого составляет несколько сотен записей).Два столбца в базе данных - это «DateWatched», это дата, когда я смотрел это конкретное аниме (например, с 6 июня по 8 июня и т. Д.), А другой столбец «Год» - это год, когда я смотрел это аниме.
Вот небольшой пример данных в двух столбцах:
DateWatched | Year
---------------------------------+----------------
Dec 18-Dec 23 | 2013
Dec 25-Jan 10 | 2013 and 2014
Feb 2014 and Jan 1-Jan 3 2016 | 2014 and 2016 #Some anime get another season years later so any date after an "and" is another season
Mar 10th | 2014
Mar 13th | 2014
Это базовая структура моих двух столбцов.То, что я хочу сделать, это сохранить его в словаре или списке и отслеживать, сколько аниме я смотрел каждый месяц (с января по декабрь) за каждый год.
Я думаю, я хочу, чтобы это было что-то вроде этого(основываясь на моем примере):
Final = {'2013':{'Dec':2},
'2014':{'Jan':1, 'Feb':1,'Mar':2}
'2016':{'Jan':1}}
Я выяснил, как создать список каждого столбца в отдельности:
MonthColumn = [i[0] for i in c.execute("SELECT DateWatched FROM Anime").fetchall()] #'Anime' is just the name of arbitrary name for the database
x = [item.replace('-',' ') for item in [y for x in MonthColumn for y in re.split(' and ', x)]] #Gets rid of '-' in each row and splits into two strings any place with an 'and'
v = [' '.join(OrderedDict((w,w) for w in item.split()).keys()) for item in x] # Removes duplicate words ("Dec 18-Dec 23" becomes "Dec 18 23")
j = [y for j in v for y in j.split()] #Splits into separate strings ("Dec 18 23" becomes "Dec", "18", "23")
Month = [item for item in j if item.isalpha()] #Final list and removes any string with numbers (So "Dec","18","23" becomes "Dec")
YearColumn = [i[0] for i in c.execute("SELECT Year FROM Anime").fetchall()]
Year = [item for Year in YearColumn for item in re.split(' and ', Year)] #Final list and removes any "and" and splits the string into 2 (So "2013 and 2014" becomes "2013","2014")
#So in the example columns I gave above, my final lists become
Month = ['Dec','Dec','Jan','Feb','Jan','Mar','Mar']
Year = ['2013','2013','2014','2014','2016','2014',2014']
Самая большая проблема, и где мне больше всего нужна помощь, это попыткачтобы выяснить, как преобразовать два списка во вложенный словарь или что-то подобное и использовать это в Matplotlib, чтобы создать гистограмму с годом в качестве оси X (с 12 столбцами для каждого года) и осью Y, являющейся числоманиме смотрел этот месяц для каждого года по оси х.
Спасибо за вашу помощь и извините, если я что-то пропустил или что-то не включил (Первое размещение).