Aynı uzunluktaki 3 sözlükten biriyim de, ben benzersiz bir pandas
veriye birleştiriyorum. Daha sonra söz konusu veri çerçevesini bir Excel dosyasına döküyorum. Örnek:Pandalar: Bir veri çerçevesini aynı elektronik tablonun birden çok sayfasına dilimleme
import pandas as pd
from itertools import izip_longest
d1={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
d2={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
d3={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
dict_list=[d1,d2,d3]
stats_matrix=[ tuple('dict{}'.format(i+1) for i in range(len(dict_list))) ] + list(izip_longest(*([ v for k,v in sorted(d.items())] for d in dict_list)))
stats_matrix.pop(0)
mydf=pd.DataFrame(stats_matrix,index=None)
mydf.columns = ['d1','d2','d3']
writer = pd.ExcelWriter('myfile.xlsx', engine='xlsxwriter')
mydf.to_excel(writer, sheet_name='sole')
writer.save()
Bu kod bir Excel bir benzersiz levha dosyası üretir:
>Sheet1<
d1 d2 d3
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
Sorum: Ben sonuçlanan Excel dosyası olduğunu şekilde bu dataframe dilim nasıl diyelim ki, başlıkların tekrarlandığı ve her bir sayfada iki sıra değer bulunan 3 sayfa var mı?
Verilen örnekte DÜZENLEME
burada dicts 6 elemanlı her vardır. Benim gerçek durumumda, 1
'dan başlayarak veri tabanının indeksi 25000'dir. Bu nedenle, bu veri çerçevesini her biri aynı ana dosyaya ayrılmış bir Excel sayfasına dökülmüş 25 farklı alt dilime ayırmak istiyorum.
Amaçlanan sonuç: bir Excel birden yaprak dosyasıdır. Başlıklar tekrarlanır. Böyle yazmaya için dataframe
>Sheet1< >Sheet2< >Sheet3<
d1 d2 d3 d1 d2 d3 d1 d2 d3
1 1 1 3 3 3 5 5 5
2 2 2 4 4 4 6 6 6
'SHEET_NAME = 'super _ {}'. format (sayfa) 'yapmak? Evet, çarşafları adlandırıyor, ama nasıl? – FaCoffee
Ayrıca, mydf.index' '1'den başladığından, onu '0' dan başlatabilirsiniz? – FaCoffee
@ CF84, dize biçimlendirmesidir. Ben 'supe_' 'yaptım ve seçtiğiniz herhangi bir şey olabilir. "{}", ".format (sayfa)" ile gider; burada "sayfa" içindeki değer, "{}" dizgesinin olduğu yerde yerleştirilir. Böylece, [0, 1, 2] ve '' süper _ {} 'formatını (sayfa)' 'super_0' ',' 'super_1' 've' 'super_2' 'olarak değerlendirirsiniz. '. Uygun gördüğünüz gibi değiştirin. – piRSquared