我设法使用PostgreSQL查询下面需要的数据。
Name InstitutionID Degree GPA CompanyID PositionID Duration Rating
Alex 10 Bachelor 3.33 123 8 24 Good
Alex 13 Master 3.57 123 8 24 Good
Alex 17 Doctorate 3.91 123 8 24 Good
Alex 10 Bachelor 3.33 101 12 48 Good
Alex 13 Master 3.57 101 12 48 Good
Alex 17 Doctorate 3.91 101 12 48 Good
Bob 12 Bachelor 3.25 197 6 12 Bad
Bob 17 Master 3.66 197 6 12 Bad
Bob 12 Bachelor 3.25 218 9 36 Bad
Bob 17 Master 3.66 218 9 36 Bad
但是需要进行轻微的操作才能将其放入矩阵中,如第二个表所示,对于没有该列的名称显示0。行是名称所特有的。
我尝试过使用下面的代码,但它没有提供所需的输出,而是提供虚拟变量。虚拟变量适用于指示值的存在,但更希望立即放置这些值。
pd.concat([df, pd.get_dummies(df.Degree)], 1).groupby(['Name','Rating']).sum().reset_index()
期望的结果
Name InstitutionID1 Degree1 GPA1 InstitutionID2 Degree2 GPA2 InstitutionID3 Degree3 GPA3 CompanyID1 PositionID1 Duration1 CompanyID2 PositionID2 Duration2 CompanyID3 PositionID3 Duration3 Rating
Alex 10 Bachelor 3.33 13 Master 3.57 17 Doctorate 3.91 123 8 24 101 12 48 0 0 0 Good
Bob 12 Bachelor 3.25 17 Master 3.66 0 0 0 197 6 12 218 9 36 0 0 0 Bad