如何在Python中使用Pandas来连接类似的多行,同时在列中添加差异?

时间:2018-01-22 17:12:29

标签: python postgresql pandas data-manipulation

我设法使用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

0 个答案:

没有答案