Когда я просматриваю ваши данные, я вижу, что сложность возникла в группах, поэтому я решил изолировать ее и работать над ней отдельно:
Я решил создать отдельный фрейм данных для каждой отдельной группы:
вот код:
data_df = {}
for category in data.get('Groups'):
#print(category)
data_df[category.get('Name')] = pd.DataFrame.from_records(category.get('Items'))
Вот выход для каждой группы:
data_df['Faculty']
Eligible IsOtherItem Name NonVoters RelativeTurnout Turnout Voters
0 7249 False Faculty of Business, Law and Social Sciences 5880 4.779694 18.885363 1369
1 6226 False Faculty of Arts, Design and Media 5187 3.627540 16.688082 1039
2 6156 False Faculty of Computing, Engineering and the Buil... 5482 2.353188 10.948668 674
3 8943 False Faculty of Health, Education and Life Sciences 7958 3.439006 11.014201 985
4 71 True Other 56 0.052371 21.126761 15
И возрастной диапазон:
Eligible IsOtherItem Name NonVoters RelativeTurnout Turnout Voters
0 13246 False 18 - 21 10657 9.039173 19.545523 2589
1 6785 False 22 - 25 5939 2.953704 12.468681 846
2 3133 False 26 - 30 2862 0.946163 8.649856 271
3 5392 False Over 30 5024 1.284826 6.824926 368
и другие группы.
Оставшаяся часть является просто информационным словарем:
del data['Groups']
Вы можете создать серию из них или другого фрейма данных.
Если вы знаете, какданные были сгенерированы, вы можете провести дальнейший анализ и построить свои данные. frame