【发布时间】:2015-08-22 04:49:56
【问题描述】:
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']]
过去一天我一直在尝试重新塑造这个数据框。修补 stack/unstack/melt 并将列转换为索引等,但未能实现我的目标。
所需的输出具有以下列:
ASID, BORDER, HOUR, PRICE
我想将所有['HOUR1', 'HOUR2', HOUR3'] 堆叠成一个column = HOUR。
同样,我想将所有['PRICE1', 'PRICE2', 'PRICE3'] 堆叠在一个column = PRICE 中,以便该字段中的值与HOUR 列中的相应值对齐。 HOUR1 & PRICE1, HOUR2 & PRICE2, HOUR3 & PRICE3 之间有一个链接。
感谢您提供的任何指导。
【问题讨论】:
标签: python pandas reshape melt