我有以下透视数据框:
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,但它没有帮助。
答案 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