Предположим, у меня есть вложенный словарь user_dict со структурой:
- Уровень 1: UserId (длинное целое число)
- Уровень 2: Категория (строка)
- Уровень 3: разные атрибуты (числа с плавающей запятой, целые числа и т. Д.)
Например, запись этого словаря будет:
user_dict[12] = {
"Category 1": {"att_1": 1,
"att_2": "whatever"},
"Category 2": {"att_1": 23,
"att_2": "another"}}
каждый элемент user_dict
имеет одинаковую структуру и user_dict
содержит большое количество элементов, которые я хочу передать в фрейм данных pandas, построив серию из атрибутов. В этом случае для этой цели будет полезен иерархический индекс.
В частности, мой вопрос заключается в том, существует ли способ помочь конструктору DataFrame понять, что ряды должны быть построены из значений «уровня 3» в словаре?
Если я попробую что-то вроде:
df = pandas.DataFrame(users_summary)
Элементы на «уровне 1» (UserId) принимаются как столбцы, что противоположно тому, чего я хочу достичь (иметь UserId в качестве индекса).
Я знаю, что могу построить серию после перебора словарных статей, но если есть более прямой способ, это было бы очень полезно. Аналогичный вопрос будет спрашивать, можно ли построить pandas DataFrame из объектов json, перечисленных в файле.