在大型数据集上将字符串转换为数字的快速方法

时间:2014-07-21 16:02:30

标签: python-2.7 hashtable categorical-data

我有一个包含数千万行的数据集。此数据上的若干列表示分类功能。这些功能的每个级别都由字母数字字符串表示,如" 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()但它变得非常慢。 解决这个问题的快捷方法是什么?

1 个答案:

答案 0 :(得分:2)

我发现分类特征值被散列到32位。所以我最终以块的形式读取文件并应用这个简单的函数

int(categorical_feature_value, 16)