我有包含SKU ID及其计数的数据集,我需要将此数据输入到机器学习算法中,以使SKU ID成为列,而COUNT在交易ID和SKU ID的交集处。谁能建议如何实现这一转变。

当前数据

TransID     SKUID      COUNT
1           31         1
1           32         2
1           33         1
2           31         2
2           34         -1

所需数据
TransID      31      32      33      34
  1          1        2      1       0
  2          2        0      0       -1

最佳答案

在 Pandas 中,您可以使用数据透视:

>>> df.pivot('TransID', 'SKUID').fillna(0)
        COUNT
SKUID      31 32 33 34
TransID
1           1  2  1  0
2           2  0  0 -1

为避免歧义,最好明确标记变量:
df.pivot(index='TransID', columns='SKUID').fillna(0)

您还可以执行groupby,然后解压SKUID:
>>> df.groupby(['TransID', 'SKUID']).COUNT.sum().unstack('SKUID').fillna(0)
SKUID    31  32  33  34
TransID
1         1   2   1   0
2         2   0   0  -1

08-28 04:04