0

我有一个包含数千万行的数据集。此数据上的几列代表分类特征。这些功能的每个级别都由一个字母数字字符串表示,例如“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+。我用 Pandas 的 .replace() 尝试了字典,但它变得非常慢。解决这个问题的快速方法是什么?

4

1 回答 1

2

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

int(categorical_feature_value, 16)
于 2014-07-21T22:13:32.980 回答