首页 > 解决方案 > 重新调整数据框的大小

问题描述

我有一个 5252 行 x 3 列的数据框

数据看起来像这样

   X       Y      Z
   1       1      2
   1       2      4
   1       3    3.5
   2      13      4
   1       4      3
   2      14    3.5
   3      14      2
   3      15      1
   4      16     .5
   4      18      2
   .       .      .
   .       .      .
   .       .      .
1508     751      1
1508     669      1
1508     686    2.5

我想转换它,所以 userid 是行,itemid 是列,Z 是对应于 X 和 Y 的数据。像这样:

       1  2    3   4  5  6  13   14  15  16  17   18  669  686

   1   2  4  3.5   3  0  0   0    0   0   0   0    0    0    0 
   2   0  0    0   0  0  0   4  4.5   0   0   0    0    0    0
   3   0  0    0   0  0  0   0    2   0   0   0    0    0    0
   4   0  0    0   0  0  0   0    0   0  .5   0    2    0    0
   .
   .
   .
1508   0  0    0   0  0  0   0    0   0   0   0    0    1    1

标签: pythonpython-3.x

解决方案


我假设您正在使用pandas库。

你需要pd.pivot_table函数。如果调用了数据框df,那么您需要:

pd.pivot_table(data=df, index="x", columns="y", values="z", aggfunc=sum)

推荐阅读