ฉันมี train
pandas df ที่มี 20 ล้านแถวและ test
pandas df ที่มีประมาณ 10 ล้านแถว
มีคอลัมน์ใน df ทั้งสองคอลัมน์ที่ฉันต้องการใช้ LabelEncoder() แต่ฉันได้รับ Memory Error
บนแล็ปท็อปของฉันและแม้แต่ในอินสแตนซ์ AWS RAM ขนาด 64 กิ๊ก
มีวิธีที่ฉันสามารถจัดการกับสิ่งนี้เป็นชิ้น ๆ โดยไม่สูญเสียการแมปหรือไม่?
นี่คือรหัสที่ฉันใช้:
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 แถวจากแต่ละแถวและสามารถเรียกใช้โค้ดได้โดยไม่มีข้อผิดพลาด ดังนั้นฉันจึงรู้ว่าไม่ใช่ข้อผิดพลาดทางไวยากรณ์หรืออะไรสักอย่าง
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.