मैं 24 पांडा डेटा निर्यात करने की आवश्यकता पर एक्सेल में पांडा DataFrame लिखने के लिए सबसे तेज़ तरीका एक अलग शीट में (140 कॉलम x 400 पंक्तियाँ)एक्सेल, प्रत्येक के लिए फ्रेम।पायथन: एकाधिक पत्रक
मैं पांडास का उपयोग कर रहा हूं ExcelWriter
। 24 परिदृश्यों चल रहा है, यह लेता है:
51 सेकंड एक .xlsx
फ़ाइल पर लिखने में
86 सेकंड (xlwt
का प्रयोग करके) एक .xls
फ़ाइल पर लिखने में एक .xlsm
लिखने के लिए (XlsxWriter
का प्रयोग करके)
141 सेकंड (कोई एक्सेल उत्पादन) (openpyxl
का उपयोग कर)
21 सेकंड बस कार्यक्रम चलाने के लिए दायर
समस्या से.xls
के लिए लिख यह मुझसे कहता है, कि स्प्रेडशीट इसलिए यदि मैं Excel में खोलें, एक स्तंभ का चयन करें, और संख्या को स्वरूपित करने 'अल्पविराम' बटन पर क्लिक, कोई स्वरूपण शैलियों शामिल है: 'शैली नहीं मिला अल्पविराम'। मुझे यह समस्या .xlsx
पर लिखने में नहीं मिली है, लेकिन यह धीमी है।
कैसे निर्यात तेजी से बनाने के लिए पर कोई सुझाव? मैं इस समस्या है करने के लिए पहले एक नहीं हो सकता है, फिर भी खोज मंचों और वेबसाइटों के घंटे के बाद मैं किसी भी निश्चित समाधान नहीं मिली है।
केवल एक चीज मैं के बारे में सोच सकते हैं अजगर उपयोग करने के लिए csv फ़ाइलें करने के लिए निर्यात करने के लिए, और फिर एक एक्सेल एकल स्प्रेडशीट में सभी CSV में विलय करने के लिए मैक्रो लिखना है।
.xls
फ़ाइल 10 एमबी है, और .xlsx
5.2 एमबी
धन्यवाद!
मुझे लगता है कि आकार में अंतर एक्सेल और विभिन्न फ़ाइल प्रारूपों से उत्पन्न होता है, न कि लेखन विधि से।इसके अलावा - आपको एक स्प्रेडशीट में सीएसवी को मर्ज करने के लिए एक्सेल मैक्रो की आवश्यकता नहीं है, xlwt के साथ एक स्क्रिप्ट लिखना काफी सीधे आगे है। – Korem
हां, ज़ाहिर है, आकार में अंतर xlsx प्रारूप में एम्बेडेड संपीड़न पर निर्भर करता है। यह मुद्दा नहीं है। मुद्दा यह है कि 5 एमबी डेटा लिखने के लिए 60 सेकंड लेना अत्यधिक लगता है। यह देखते हुए कि पाइथन पैकेज इतने धीमे हैं कि एक्सेल में डेटा फ्रेम फ्रेम फ्रेम हैं, क्या वे एक्सेल में सीएसवी को तेजी से लिखेंगे? मेरे पास अभी तक परीक्षण करने का समय नहीं है लेकिन मुझे शक है। मेरी आशा है कि एक्सेल और वीबीए का उपयोग कर सीएसवी विलय करना तेजी से होता। यह थोड़ा निराशाजनक है कि कुछ एमबी डेटा निर्यात करने के रूप में कुछ भी बहुत लंबा लगता है ... –
इसलिए, मैंने कुछ और परीक्षण चलाए हैं: 24 सीएसवी लोड करना और उन्हें एक्सेल फ़ाइल की अलग-अलग चादरों पर रखना: एक्सेल वीबीए मैक्रो: 5 सेकंड। xlsxWriter के साथ पायथन लिपि: 24 सेकंड (34 '{constant_memory': True}, अजीब के साथ)। http://stackoverflow.com/questions/2141967/using-python-to-program-ms-office-macros : http: हो सकता है कि सबसे अच्छा विकल्प इन उदाहरणों में के रूप में, अजगर से VBA मैक्रो को चलाने के लिए है //stackoverflow.com/questions/441758/driving-excel-from-python-in-windows –