df = pd.DataFrame({'BORDER':['GERMANY','FRANCE','ITALY','USA','CANADA','MEXICO','INDIA','CHINA','JAPAN' ], 'ASID':[21, 32, 99, 77,66,55,44,88,111], 'HOUR1':[2 ,2 ,2 ,4 ,4 ,4 ,6 ,6, 6],'HOUR2':[3 ,3 ,3, 5 ,5 ,5, 7, 7, 7], 'HOUR3':[8 ,8 ,8, 12 ,12 ,12, 99, 99, 99], 'PRICE1':[2 ,2 ,2 ,4 ,4 ,4 ,6 ,6, 6], 'PRICE2':[2 ,2 ,2 ,4 ,4 ,4 ,6 ,6, 6],'PRICE3':[2 ,2 ,2 ,4 ,4 ,4 ,6 ,6, 6] })
df = df[['ASID', 'BORDER', 'HOUR1', 'PRICE1', 'HOUR2', 'PRICE2', 'HOUR3', 'PRICE3']]
Я пытался изменить форму этого фрейма данных за последний день. Возился со стеком/распаковкой/расплавлением и сдвигом столбцов в индексы и т. д., но не смог достичь своей цели.
Желаемый результат имеет следующие столбцы:
ASID, BORDER, HOUR, PRICE
Я хочу сложить все ['HOUR1', 'HOUR2', HOUR3']
в один column = HOUR
.
Точно так же я хочу сложить все ['PRICE1', 'PRICE2', 'PRICE3']
в один column = PRICE
, чтобы значение в этом поле было выровнено с соответствующим значением в столбце HOUR
. Существует связь между HOUR1
и PRICE1
, HOUR2
и PRICE2
, HOUR3
и PRICE3
.
Я ценю любые рекомендации, которые вы можете предоставить.