重塑大熊猫的数据框架

时间:2015-08-20 12:10:30

标签: python pandas

我有以下透视数据框:

variable           A         B         C         D
date                                              
2000-01-03  0.469112 -1.135632  0.119209 -2.104569
2000-01-04 -0.282863  1.212112 -1.044236 -0.494929
2000-01-05 -1.509059 -0.173215 -0.861849  1.071804

如何将其转换为以下格式的新数据框:

date           A         B         C         D
2000-01-03  0.469112 -1.135632  0.119209 -2.104569
2000-01-04 -0.282863  1.212112 -1.044236 -0.494929
2000-01-05 -1.509059 -0.173215 -0.861849  1.071804

其中"日期"不是第二个数据帧中的索引。非常感谢任何帮助。

我已阅读Trouble pivoting / reshaping a pandas dataframe,但它没有帮助。

1 个答案:

答案 0 :(得分:2)

尝试重置索引

WITH sorted AS ( SELECT PERSONID, CONTACTDATE, QUEST_1, QUEST_2, ROW_NUMBER() OVER (PARTITION BY PERSONID ORDER BY CONTACTDATE ASC) AS ORD_FWD, ROW_NUMBER() OVER (PARTITION BY PERSONID ORDER BY CONTACTDATE DESC) AS ORD_REV FROM TBL_APPOINTMENTS ) SELECT PERSONID, MAX(CASE WHEN ORD_FWD = 1 THEN CONTACTDATE END) AS FIRST_CONTACTDATE, MAX(CASE WHEN ORD_FWD = 1 THEN QUEST_1 END) AS FIRST_QUEST_1, MAX(CASE WHEN ORD_FWD = 1 THEN QUEST_2 END) AS FIRST_QUEST_2, MAX(CASE WHEN ORD_REV = 1 THEN CONTACTDATE END) AS FINAL_CONTACTDATE, MAX(CASE WHEN ORD_REV = 1 THEN QUEST_1 END) AS FINAL_QUEST_1, MAX(CASE WHEN ORD_REV = 1 THEN QUEST_2 END) AS FINAL_QUEST_2 FROM sorted WHERE ORD_FWD = 1 OR ORD_REV = 1 GROUP BY PERSONID ORDER BY PERSONID