python - 如何将列中的值转换为列名,然后将另一列中的相应值插入其中
问题描述
我有一个熊猫数据框,如下所示:
df1=pd.DataFrame({'customerId': ['1', '2','1','1','3'], 'productId': ['111','112','113','114','111'],'index':[1.0,3.0,4.0,2.5,6.3]})
df1[['customerId','productId','index']]
customerId productId index
0 1 111 1.0
1 2 112 3.0
2 1 113 4.0
3 1 114 2.5
4 3 111 6.3
我想创建一个 pandas 数据框,其中 productId 列中的值将成为列名,这些列下的值是该 customerId 的索引列中的对应值,如下所示:
customerId 111 112 113 114
0 1 1.0 0.0 4.0 2.5
1 2 0.0 3.0 0.0 0.0
2 3 6.3 0.0 0.0 0.0
注意:因为这可以使用 while/for 循环来完成,但我只想在 Pandas 操作中执行它,因为我正在工作的数据框很大并且循环会花费很多时间。因此,请建议在 Pandas 中执行此操作的任何有效方法。