我有一个包含数千万行的数据集。此数据上的若干列表示分类功能。这些功能的每个级别都由字母数字字符串表示,如" b009d929"。
C1 C2 C3 C4 C5 C6 C7
68fd1e64 80e26c9b fb936136 7b4723c4 25c83c98 7e0ccccf de7995b8 ...
68fd1e64 f0cf0024 6f67f7e5 41274cd7 25c83c98 fe6b92e5 922afcc0
我希望能够使用Python将每个不同级别映射到一个数字以节省内存。因此,功能C1的电平将被1到C1_n的数字所取代,C2的电平将被1到C2_n的数字所取代...... 每个功能都有不同的级别,从10到10k +不等。 我和熊猫一起尝试过词典' .replace()但它变得非常慢。 解决这个问题的快捷方法是什么?
答案 0 :(得分:2)
我发现分类特征值被散列到32位。所以我最终以块的形式读取文件并应用这个简单的函数
int(categorical_feature_value, 16)