मेरे पास कई डेटाफ़्रेम हैं, df1, df2 आदि। प्रत्येक डेटाफ़्रेम में अलग-अलग संख्या में कॉलम और पंक्तियाँ होती हैं। StyleFrame लाइब्रेरी का उपयोग करते हुए, क्या सेल स्थानों को निर्दिष्ट करके to_excel विधि का उपयोग करके एक्सेल फ़ाइल में सभी डेटाफ़्रेम को एक-एक करके एक शीट में कॉपी करना संभव है? वर्तमान में, मैं यहाँ क्या कर रहा हूँ:

एक्सेल फ़ाइल के शीट1 में df1 लिखें

writer = StyleFrame.ExcelWriter("filename")
sf1 = StyleFrame(df1)

#Perform formatting using apply_column_style, apply_headers_style etc.

sf1.to_excel(writer, sheet_name='Sheet1')

एक्सेल फ़ाइल के शीट 1 में df2 लिखें

writer = StyleFrame.ExcelWriter("filename")
sf2 = StyleFrame(df2)

#Perform formatting using apply_column_style, apply_headers_style etc.

sf2.to_excel(writer, sheet_name='Sheet1')    #Incorrectly overwrites df1 data in the excel

writer.save()
writer.close()

हालांकि, sf2.to_excel() विधि एक्सेल में df1 डेटा को अधिलेखित कर देती है। मैं जो खोज रहा हूं वह सेल स्थान से शुरू होने वाले डीएफ 1 डेटा की प्रतिलिपि बनाना है, "ए 2" कहें, शीट 1 में और फिर एसएफ 2 डेटा स्थान से शुरू हो रहा है, उसी शीट में "बी 31" कहें।

3
viks_python 3 मई 2018, 10:36

1 उत्तर

सबसे बढ़िया उत्तर

हाँ। जैसे pandas.to_excel startrow और startcol तर्कों का समर्थन करता है, वैसे ही StyleFrame.to_excel करता है।

एपीआई काफी हद तक pandas के समान है: आपको एक excel_writer ऑब्जेक्ट बनाने की जरूरत है, दोनों स्टाइलफ्रेम पर to_excel पर कॉल करें और फिर excel_writer.save पर कॉल करें:

from StyleFrame import StyleFrame, Styler

sf1 = StyleFrame({'a': [1]}, Styler(bg_color='yellow'))
sf2 = StyleFrame({'b': [1]}, Styler(bg_color='blue'))

excel_writer = StyleFrame.ExcelWriter('test.xlsx')
sf1.to_excel(excel_writer)
sf2.to_excel(excel_writer, startcol=3, startrow=2)  # both are zero-based
excel_writer.save()

आउटपुट

enter image description here

2
DeepSpace 3 मई 2018, 12:36