मैं दो डेटाफ्रेम को एक साथ मर्ज करने की कोशिश कर रहा हूं। एक में 1.5M पंक्तियाँ हैं और एक में 15M पंक्तियाँ हैं। मैं मर्ज किए गए डेटाफ्रेम को 15M पंक्तियों में लाने की उम्मीद कर रहा था, लेकिन इसमें वास्तव में 178M पंक्तियाँ हैं !! मुझे लगता है कि मेरा विलय किसी प्रकार का कार्टेशियन उत्पाद कर रहा है, और यह वह नहीं है जो मैं चाहता हूं।
मैंने यही कोशिश की, और 178M पंक्तियाँ प्राप्त कीं।
df_merged = pd.merge(left=df_nat, right=df_stack, how='inner', left_on='eno', right_on='eno')
मैंने नीचे दिए गए कोड की कोशिश की और स्मृति त्रुटि से बाहर हो गया।
df_merged = pd.merge(df_nat, df_stack, how='inner', on='eno')
मुझे लगता है कि इन डेटाफ्रेम में डुप्ली हैं, और इससे अंतिम विलय नौकरी उड़ रही है। मैं यह कैसे कर सकता हूं ताकि मेरे पास 15M पंक्तियों के साथ अंतिम मर्ज किए गए डेटाफ़्रेम हो? अंत में, स्कीमा अलग हैं, और केवल 'एनो' फ़ील्ड समान है।
धन्यवाद।
1 उत्तर
पहले डुप्स को हटाने का प्रयास करें दोनों को मिला दो। यह स्मृति उपयोग को बहुत कम कर देगा:
df_1 = df_1.drop_duplicates(subset=['enodeb'], keep='last')
df_2 = df_2.drop_duplicates(subset=['enodeb'], keep='last')
अगर डेटासेट मेमोरी में फ़िट होने के लिए बहुत छोटे हैं, तो शायद dask या vaex आउट-ऑफ़-कोर प्रोसेसिंग करने के लिए।
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।