我不知道这是不是叫做熔化或取消熔化,或者旋转或取消旋转,但我想知道我是否可以将我的ColumnB更改为headers,从ColumnF开始(以及这些headers下的数据点),同样,将headers从ColumnF开始更改为ColumnB。
这是我正在看的屏幕截图。

这是我的数据。
qyear Line_Item IDRSSD schedule_code RCON3543 RCON3545 RCON3547 RCON3548
97 2011Q1 TRDG ASTS ASTBCKD SCTY AUTO LN 1004368 RCD 7360 7360 7583 $7,583
98 2012Q1 TRDG ASTS ASTBCKD SCTY OTHR CNSMR LN 1004368 RCD 17807 17807 18092 18092
99 2013Q1 TRDG ASTS ASTBCKD SCTY CMRL IND LN 1004368 RCD 20073 20073 20971 20971
100 2011Q1 TRDG ASTS ASTBCKD SCTY OTHR LN 1004470 RCD 0 0 0 0
101 2012Q1 TRDG ASTS RTND BNFCL INT SCTY 1004470 RCD 0 0 0 0
102 2013Q1 TRDG ASTS EQT SCTY RDLY DET FV 1004470 RCD 0 0 0 0
103 2012Q1 TRDG ASTS EQT SCTY OTHR 1005075 RCD 0 0 0 0
104 2013Q1 TRDG ASTS LN PEND SCTY 1005075 RCD 0 0 0 0
105 2011Q1 1ST ITEMIZED AMT FOR OTHR TRDG ASTS 1005440 RCD 0 0 0 0
106 2012Q1 2ND ITEMIZED AMT FOR OTHR TRDG ASTS 1005440 RCD 0 0 0 0
107 2013Q1 3RD ITEMIZED AMT FOR OTHR TRDG ASTS 1005440 RCD 0 0 0 0
108 2011Q1 1ST ITEMIZED AMT FOR OTHR TRDG ASTS 1005459 RCD 0 0 0 0
109 2012Q1 2ND ITEMIZED AMT FOR OTHR TRDG ASTS 1005459 RCD 0 0 0 0
110 2011Q1 3RD ITEMIZED AMT FOR OTHR TRDG ASTS 100553 RCD 0 0 0 0
111 2012Q1 SFP TPS ISS FNCL INSTITUTION 100553 RCD 0 0 0 0
112 2011Q1 SFP TPS ISS RE INV TR 1005552 RCD 0 0 0 0
113 2012Q1 SFP CORP SIMILAR LN 1 005552 RCD 0 0 0 0
114 2013Q1 SFP 1T4 FMLY RES MBS ISS US GSE 1005552 RCD 0 0 0 0
115 2011Q1 SFP 1T4 FMLY RES MBS NOT ISS GSE 100562 RCD 0 0 0 0
116 2012Q1 TRDG MBS PT SCTY ISS GUAR FFG 100562 RCD 0 0 0 0
117 2013Q1 TRDG OTHR MBS ISS GUAR FFG 100562 RCD 0 0 0 0
118 2011Q1 TRDG ASSET MBS OTHR RES MBS 1005655 RCD 0 0 0 0
119 2012Q1 TRDG ASSET STRD FNC PROD CASH 1005655 RCD 0 0 0 0
120 2013Q1 TRDG OTHR STRD FNC PROD SYN 1005655 RCD 0 0 0 0
121 2011Q1 TRDG OTHR STRD FNC PROD HYBRID 1005851 RCD 0 0 0 0
122 2012Q1 TRDG ASSET OTHR DEBT SCTY CNSL 1005851 RCD 0 0 0 0我想让最终的视图看起来像这样。

我注意到转置几乎可以工作,但这会颠倒ColumnC和ColumnD,而我不想触及这两列。我希望保持ColumnC和ColumnD不变,将ColumnB移动到headers,并将headers移动到ColumnB。有可能做到这一点吗?非常感谢!
发布于 2021-01-21 12:56:18
我认为您看到的是stack和unstack的组合
(df.set_index(['qyear','Line_Item','IDRSSD','schedule_code'])
.stack()
.unstack('qyear')
.reset_index()
)或者先使用unstack,然后使用transpose
(df.set_index(['qyear','Line_Item','IDRSSD','schedule_code'])
.unstack(level=['Line_Item','IDRSSD','schedule_code'])
.T.reset_index()
)或者先使用melt,然后使用pivot
(df.melt(id_vars=['qyear','Line_Item','IDRSSD','schedule_code'])
.pivot_table(index=['Line_Item','IDRSSD','schedule_code', 'variable'],
columns='qyear', values='value', aggfunc='first')
.reset_index()
)https://stackoverflow.com/questions/65821342
复制相似问题