我有包含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