Проблема в том, что ваши json-значения содержат списки с комментариями:
data
>>
{'2015': [{'DayofWeek': 4,
'Date': '2015-02-06 00:00:00',
'Year': 2015,
'y': 43.2,
'x': 10.397}],
'2016': [{'DayofWeek': 4,
'Date': '2016-02-06 00:00:00',
'Year': 2016,
'y': 43.2,
'x': 10.397,
'Minute': 0}],
'2017': [{'DayofWeek': 4,
'Date': '2017-02-06 00:00:00',
'Year': 2017,
'y': 43.2,
'x': 10.397,
'Minute': 0}]}
... панды не могут это обработать (насколько я знаю).
Но если каждый список содержит только 1 элемент, вы можете преобразовать его:
data_dict = {d: data[d][0] for d in data}
data_dict
>>
{'2015': {'DayofWeek': 4,
'Date': '2015-02-06 00:00:00',
'Year': 2015,
'y': 43.2,
'x': 10.397},
'2016': {'DayofWeek': 4,
'Date': '2016-02-06 00:00:00',
'Year': 2016,
'y': 43.2,
'x': 10.397,
'Minute': 0},
'2017': {'DayofWeek': 4,
'Date': '2017-02-06 00:00:00',
'Year': 2017,
'y': 43.2,
'x': 10.397,
'Minute': 0}}
Теперь вы можете сделать из него DataFrame
с ориентацией index
:
df=pd.DataFrame.from_dict(data_dict, orient='index')
df
И доступ к вашим элементам:
Вариант 1:
df[df['DayofWeek']==4]
Вариант 2:
df[(df['DayofWeek']==4) & (df['Year']==2017)]
РЕДАКТИРОВАТЬ
Если у вас есть несколько элементов в списке, вы можете просто создать список всех записей:
data_list = [v for d in data for v in data[d]]
df = pd.DataFrame(data_list)
Поскольку у вас есть столбец Year
, вам, вероятно, даже не нужен ключ json- / dict, поэтому я просто пропустил его. : -)