2013-01-08 12 views
49

पर डेटाफ्रेम की सूची सहेजें I Excel स्प्रेडशीट में डेटाफ्रेम की सूची कैसे निर्यात कर सकता हूं?
to_excel राज्य के लिये दस्तावेज:मल्टीशीट एक्सेल स्प्रेडशीट

नोट्स
तो एक मौजूदा ExcelWriter वस्तु गुजर, तो चादर जोड़ दिया जाएगा मौजूदा कार्यपुस्तिका के लिए। यह एक कार्यपुस्तिका

writer = ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet1')
df2.to_excel(writer, 'sheet2')
writer.save()

इस के बाद करने के लिए विभिन्न DataFrames को बचाने के लिए इस्तेमाल किया जा सकता, मैंने सोचा कि मैं एक समारोह जो एक के लिए DataFrames की सूची सहेजता लिख ​​सकता है स्प्रेडशीट निम्नानुसार है:

from openpyxl.writer.excel import ExcelWriter 
def save_xls(list_dfs, xls_path): 
    writer = ExcelWriter(xls_path) 
    for n, df in enumerate(list_dfs): 
     df.to_excel(writer,'sheet%s' % n) 
    writer.save() 

हालांकि (दो छोटे DataFrames, जिनमें से प्रत्येक अलग-अलग to_excel बचा सकता है की एक सूची के साथ), एक अपवाद उठाया है (संपादित करें: ट्रैस बैक हटाया):

AttributeError: 'str' object has no attribute 'worksheets' 

मुमकिन है मैं सही ढंग से ExcelWriter बुला नहीं कर रहा हूँ, कैसे करना चाहिए मैं ऐसा करने के लिए किया जा रहा हूँ?

उत्तर

74

पांडा आप का उपयोग करना चाहिए ExcelWriter वर्ग के मालिक हैं:

from pandas import ExcelWriter 
# from pandas.io.parsers import ExcelWriter 

फिर save_xls समारोह काम करता है के रूप में उम्मीद:

def save_xls(list_dfs, xls_path): 
    writer = ExcelWriter(xls_path) 
    for n, df in enumerate(list_dfs): 
     df.to_excel(writer,'sheet%s' % n) 
    writer.save() 
+1

... क्या एक उपकरण! –

+0

क्यों नहीं 'df.to_excel (' file_path ') '? – root

+0

@root मुझे नहीं लगता कि डेटाफ्रेम की सूची के लिए काम करता है? –

संबंधित मुद्दे