我有一个数据框,每个 Id 可以有 n 个 P_Id 值。
X = Id P_Id Value
1 a_1 56
1 a_2 76
2 a_1 67
2 a_2 78
2 a_3 98
我有另一个数据框
Y = Id Name
1 Erwin
2 Joseph
3 Nik
我想要输出数据框
Output = Id a_1 a_2 a_3 Name
1 56 76 nan Erwin
2 67 78 98 Joseph
答案 0 :(得分:2)
内部merge
x和y,然后pivot
这个合并的数据帧,然后合并回第二个数据帧,最后,您可以重置索引。
x.merge(y, how='inner', on='Id').pivot(columns='P_Id', values='Value').merge(y, on='Id').reset_index()
输出:
Id a_1 a_2 a_3 Name
0 1 56.0 76.0 NaN Erwin
1 2 67.0 78.0 98.0 Joseph