我有一个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行,并且能够运行代码而没有错误,所以我知道它不是语法错误或其他什么。
非常感谢任何帮助。
答案 0 :(得分:1)
之前我没有使用过LabelEncoder,但是从我使用Sklearn开始,我知道有些选项可以帮助并行化。您是否尝试过并行化此任务?要么使用像许多sklearn分类器那样的n_jobs参数,要么使用python多处理库。