在python中重新排列标题和值

时间:2019-06-16 07:33:58

标签: python pandas

我想使用python代码将DF1转换为Df2。我想将以下数据框(Df1)作为输入,其中每个唯一ID代表一个人:

  

Df1>

Year    ID     SUBJECT    GRADE  
15     1       AA        A+
15     1       BB        B
15     1       CC        B+
15     1       DD        B+
15     2       AA        A-
15     2       BB        C
15     2       DD        A-
16     3       AA        C
16     3       BB        A
16     3       CC        B+

期望的(预期的)输出应如下所示:

  

Df2>

ID    AA    AA-Year    BB    BB-Year    CC    BB-Year    DD    DD-Year
 1    A+     15        B      15         B+     15       B+      15
 2    A-     15        C      15       None     15       A-      15
 3    C      16        A      16         B+     16      None     16

AA年份表示受试者获得AA的年份。

我尝试使用df.groupby,但获得的结果却不理想。 g = df.groupby(['fregyr','fregkey']).cumcount().add(1) df = df.set_index(['fregyr','fregkey',g]).unstack(fill_value='None').sort_index(axis=1,level=1) df.columns = ["{}_{}".format(a, b) for a, b in df.columns]
df = df.reset_index()

0 个答案:

没有答案