मैं पांडा के साथ एक स्प्रेडशीट बनाने की कोशिश कर रहा हूं जो एक कोड द्वारा डेटा समूहित करता है और प्रत्येक समूह को एक्सेल स्प्रेडशीट में एक अलग टैब में रखता है।

अब तक मैंने डेटाफ़्रेम की एक सूची बनाई है, लेकिन मैं प्रत्येक डेटाफ़्रेम को स्प्रेडशीट पर अपने स्वयं के टैब में नहीं बना सकता।

fss_infile = pd.ExcelFile('Report.xlsx')
lvl_1 = fss_infile.parse(sheet_name ='Lvl 1')
list_dfs = [lvl_1.loc[lvl_1['pc_code_last_4']==val, :] for val in lvl_1['pc_code_last_4'].unique()]

for i in list_dfs:
    i.to_excel('output.xlsx')

मैं प्रत्येक डेटाफ़्रेम को pc_code_last_4 मान के नाम से एक अलग टैब पर कैसे प्राप्त करूं?

2
tomoc4 30 जिंदा 2020, 17:53

2 जवाब

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

pd.GroupBy का उपयोग करके हम pd.ExcelWriter का उपयोग करके एक खाली एक्सेल ऑब्जेक्ट बनाते हैं और फिर आपके डेटा फ्रेम पर लूप करते हैं और संबंधित समूहों को आपकी वर्कशीट में लिखते हैं।

writer = pd.ExcelWriter('myfile.xlsx')
for group, data in df.groupby('pc_code_last_4'):
    data.to_excel(writer,sheet_name=f"{group}")
    print(f"{group} saved to spreadsheet")
writer.save()
2
Manakin 30 जिंदा 2020, 18:55

आप ExcelWriter ढूंढ रहे हैं। यह करना चाहिए:

writer = pd.ExcelWriter('Report.xlsx', engine='xlsxwriter')
for val in lvl_1['pc_code_last_4'].unique():
    df = lvl_1.loc[lvl_1['pc_code_last_4']==val, :]
    df.to_excel(writer, sheet_name=val)
writer.save()
1
Manakin 30 जिंदा 2020, 19:01