पंडों के समारोह 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.