#python #python-3.x #dataframe #dictionary #nested
#python #python-3.x #фрейм данных #словарь #вложенный
Вопрос:
У меня есть вложенный dict (созданный мной) под названием dict3 со следующей структурой: A:[B1:[C1,C2,C3..],B2:[],B3:[C1],...]
. Хотя моя проблема не связана с кодом, используемым для написания dict, пожалуйста, найдите его далее для вашего понимания:
dict3 = {} # Create an empty dictionary for us to populate
for key in swreq2pcr: # Iter over each of the keys in dict1
subdict = {} # This will be the nested dictionary
for item in swreq2pcr[key]: # Iter over each item in the list at that location in the dict
if item[:4]=="PSAP":
subdict[item] = pcr2tests[item] # Get the corresponding list from dict2 and store it in the nested dictionary
else:
subdict[item]=[]
dict3[key] = subdict # store the nested dictionary
Уродливый результат, полученный из приведенного выше кода, выглядит следующим образом:
Чтобы улучшить внешний вид, я использую следующий код:
pd.set_option("display.max_rows", None, "display.max_columns", None) #Avoid to truncate the dataframe
df=pd.DataFrame.from_dict({(i):dict3[i]
for i in dict3.keys()},orient='index').stack().to_frame()
а новый и необычный результат — это:
где гораздо легче увидеть гнездование. Хотя я ожидал увидеть два столбца, и здесь мне нужна поддержка, по какой-то причине код определяет только один столбец с именем ‘0’, как показано на рисунке ниже:
Следовательно, не могли бы вы помочь мне адаптировать выходные данные, чтобы получить что-то вроде изображения ниже?. Заранее большое вам спасибо.