के साथ डेटा फ्रेम को विलय कर रहा है मैं read_csv का उपयोग करके पांडा में दो डेटाफ्रेम मर्ज करने का प्रयास कर रहा हूं। लेकिन मेरे डेटाफ्रेम में से एक (इस उदाहरण में d1
) मेरे कंप्यूटर को संभालने के लिए बहुत बड़ा है, इसलिए मैं में iterator
तर्क का उपयोग कर रहा हूं।pandas
चलो कहते हैं कि मैं दो dataframes
d1 = pd.DataFrame({
"col1":[1,2,3,4,5,6,7,8,9],
"col2": [5,4,3,2,5,43,2,5,6],
"col3": [10,10,10,10,10,4,10,10,10]},
index=["paul", "peter", "lauren", "dave", "bill", "steve", "old-man", "bob", "tim"])
d2 = pd.DataFrame({
"yes/no": [1,0,1,0,1,1,1,0,0]},
index=["paul", "peter", "lauren", "dave", "bill", "steve", "old-man", "bob", "tim"])
मैं उन्हें एक करना इतना है कि प्रत्येक पंक्ति प्रत्येक व्यक्ति के लिए सभी डेटा कैप्चर करता है की जरूरत है दें, ताकि के बराबर कर रही:
pd.concat((d1,d2), axis=1,join="outer")
लेकिन जब से मैं यह कर सकते हैं स्मृति में फिट 1 नहीं है, मैं read_csv
का उपयोग कर रहा हूं (मैं read_csv
का उपयोग कर रहा हूं क्योंकि मैंने पहले ही एक बड़ी फ़ाइल संसाधित की है और इसे .csv प्रारूप में सहेजा है, इसलिए कल्पना करें कि मेरा डेटाफ्रेम डी 1 फ़ाइल test.csv
फ़ाइल में निहित है)।
itera = pd.read_csv("test.csv",index_col="index",iterator=True,chunksize=2)
लेकिन जब मैं
for i in itera:
d2 = pd.concat((d2,i), axis=1,join="outer")
करना मेरी उत्पादन पहले dataframe दूसरा dataframe द्वारा संलग्न है।
मेरे उत्पादन इस तरह दिखता है:
col1 col2 col3 yes/no
one NaN NaN NaN 1.0
two NaN NaN NaN 0.0
three NaN NaN NaN 1.0
four NaN NaN NaN 0.0
five NaN NaN NaN 1.0
six NaN NaN NaN 1.0
seven NaN NaN NaN 1.0
eight NaN NaN NaN 0.0
nine NaN NaN NaN 0.0
one 1.0 5.0 10.0 NaN
two 2.0 4.0 10.0 NaN
three 3.0 3.0 10.0 NaN
four 4.0 2.0 10.0 NaN
five 5.0 5.0 10.0 NaN
six 6.0 43.0 4.0 NaN
seven 7.0 2.0 10.0 NaN
eight 8.0 5.0 10.0 NaN
nine 9.0 6.0 10.0 NaN
आशा है कि मेरे सवाल समझ :)
फास्ट जवाब:, यह बड़ा dataframes जो स्मृति में फिट नहीं कर सकते हैं संभाल कर सकते हैं Dask पुस्तकालय का उपयोग करने का प्रयास करें: http://dask.pydata.org/en/नवीनतम/ – CrazyElf
* मेरा आउटपुट दूसरा डेटाफ्रेम * द्वारा जोड़ा गया पहला डेटाफ्रेम है ... आप क्या चाहते थे? – Parfait
एक नेस्टेड कॉन्सैट आज़माएं: 'pd.concat ([d1, pd.concat (itera, ignore_index = True)]) – Parfait