scikit-learn的LabelEncoder()内存问题

时间:2016-07-20 18:25:25

标签: python pandas scikit-learn

我有一个train pandas df,包含2000万行和一个test pandas df,大约有1000万行。

我想在两个df中都有列应用LabelEncoder(),但我一直在我的笔记本电脑上获得Memory Error,甚至在64 gig RAM AWS实例上。

有没有办法可以在不丢失映射的情况下处理这个问题?

以下是我使用的代码:

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()

for col in cols_to_encode:
    le.fit(list(train[col])+list(test[col]))
    train[col] = le.transform(train[col])
    test[col] = le.transform(test[col])

我从每个行中抽取了500,000行,并且能够运行代码而没有错误,所以我知道它不是语法错误或其他什么。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

之前我没有使用过LabelEncoder,但是从我使用Sklearn开始,我知道有些选项可以帮助并行化。您是否尝试过并行化此任务?要么使用像许多sklearn分类器那样的n_jobs参数,要么使用python多处理库。