पंडों के समारोह to_excel एक अप्रत्याशित टाइप-जनरेट उत्पन्न करते हैं


13

मैंने पांडा डेटाफ्रेम का एक शब्दकोश बनाया:

d[k] = pd.DataFrame(data=data[i])

तो मुझे लगता है कि d[k]एक सही पांडा डेटाफ्रेम है।

फिर

for k in d.keys():
  d[k].to_excel (file_name)

फिर मेरे पास त्रुटि है:

TypeError: got invalid input value of type <class 'xml.etree.ElementTree.Element'>, expected string or Element

मैं पायथन 3.7, पांडा 0.25.3 का उपयोग कर रहा हूं।

अद्यतन : यदि मैं to_excelद्वारा प्रतिस्थापित करता हूं to_csv, तो कोड पूरी तरह से चलता है।


1
क्या है file_name? क्या यह एक तार है?
— क्वांग होआंग

हाँ यही है। जैसे कुछ'/data/myfile.xlsx'
— mommomonthewind

यदि आप कोशिश करते हैं तो क्या होता है d[k].to_excel(str(filename))?
— क्वांग होआंग

वही मुद्दा। मुझे नहीं लगता कि समस्या इस पर है file_name। मैंने जाँच की और मुझे पूरा यकीन है कि यह एक मान्य फ़ाइल नाम है।
— मम्मोमोन्तेविंड

मुझे Openpyxl का उपयोग करने में एक ही त्रुटि मिली: 3.0.2 पांडा 0.25.3 पायथन 3.8.1 (टैग / v3.8.1: 1b293b6, 18 दिसंबर 2019, 23:11:46) [MSC v.1916 बिट (AMD64)] को हटाना Openpyxl 3.0.2 और Openpyxl को 3.0.3 में अपग्रेड करना इस मुद्दे को निर्धारित करता है, जैसा कि अन्य रिपोर्ट करते हैं। धन्यवाद। एक बात मैं जोड़ दूंगा: Openpyxl 3.0.2 बग ने * .xlsx फ़ाइल को दूषित कर दिया था, जो कि इसे अपग्रेड कर रहा था, इसे एक्सेल द्वारा अपठनीय और अप्राप्य बना दिया गया था।
— user39678

जवाबों:


37

मुझे एक ही समस्या है openpyxl=3.0.2,

इस उत्तर का संदर्भ लें , मैं ओपनपीएक्सएल को 3.0.1 (कोंडा या पाइप) पर वापस रोल करता हूं और यह काम करता है।

>>> conda remove openpyxl
>>> conda install openpyxl==3.0.1

या

>>> pip uninstall openpyxl
>>> pip install openpyxl==3.0.1

1
यहां ट्रैक किया गया: bitbucket.org/openpyxl/openpyxl/issues/1396/…
— शहीद हक़

इस मुद्दे को Openpyxl 3.0.3 में तय किया गया है।
— zeeks
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.