Как использовать вложенные словари `pd.concat`?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать вложенные словари `pd.concat`?

Сообщение Anonymous »

Я пытаюсь объединить несколько кадров данных с помощью pd.concat. По сути, я пытаюсь следовать инструкциям из этого поста для четырехуровневого вложенного словаря.
Вот моя попытка с минимальным примером -
import pandas as pd
nested_dict = {
'level1': {
'level2': {
'level3': {
'level4': 'value'
}
}
}
}

for key0, value0 in nested_dict.items():
for key1, value1 in value0.items():
for key2, value2 in value1.items():
for key3, value3 in value2.items():
out = pd.concat(key3:{pd.DataFrame(key2:{pd.DataFrame(key1:{pd.DataFrame({key0: pd.DataFrame(value0)})})})}, axis = 1)

К сожалению, я получаю сообщение об ошибке -
out = pd.concat(key3:{pd.DataFrame(key2:{pd.DataFrame(key1:{pd.DataFrame({key0: pd.DataFrame(value0)})})})}, axis = 1)
^
SyntaxError: invalid syntax


Это результат, который я ищу -
level1
level2
level3
level4 value


Изменить –
Я следовал инструкциям, данным в ответе –

for key0, value0 in nested_dict.items():
for key1, value1 in value0.items():
for key2, value2 in value1.items():
for key3, value3 in value2.items():
out = pd.concat({key3:pd.DataFrame({key2:pd.DataFrame({key1:pd.DataFrame({key0: pd.DataFrame(value0)})})})}, axis = 1)

Теперь я получаю следующую ошибку:
Traceback (most recent call last):
File "/home/thoma/.config/JetBrains/PyCharmCE2023.2/scratches/scratch_14.py", line 16, in
out = pd.concat({key3:pd.DataFrame({key2:pd.DataFrame({key1:pd.DataFrame({key0: pd.DataFrame(value0)})})})}, axis = 1)
File "/home/thoma/anaconda3/envs/benchmark/lib/python3.8/site-packages/pandas/core/frame.py", line 663, in __init__
mgr = dict_to_mgr(data, index, columns, dtype=dtype, copy=copy, typ=manager)
File "/home/thoma/anaconda3/envs/benchmark/lib/python3.8/site-packages/pandas/core/internals/construction.py", line 494, in dict_to_mgr
return arrays_to_mgr(arrays, columns, index, dtype=dtype, typ=typ, consolidate=copy)
File "/home/thoma/anaconda3/envs/benchmark/lib/python3.8/site-packages/pandas/core/internals/construction.py", line 119, in arrays_to_mgr
index = _extract_index(arrays)
File "/home/thoma/anaconda3/envs/benchmark/lib/python3.8/site-packages/pandas/core/internals/construction.py", line 657, in _extract_index
raise ValueError("If using all scalar values, you must pass an index")
ValueError: If using all scalar values, you must pass an index



Подробнее здесь: https://stackoverflow.com/questions/781 ... ctionaries
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»