5
假設我有3個相同長度的字典,我將其組合爲一個獨特的pandas
數據框。然後,我將所述數據框轉儲到Excel文件中。例如:熊貓:將數據幀分割成多張同一電子表格
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()
此代碼生成一個Excel與獨特表文件:
>Sheet1<
d1 d2 d3
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
我的問題:我怎樣可以切片此數據幀以這樣的方式使所得的Excel文件具有比方說3張表,其中標題重複出現,每張表中有兩行值?
EDIT
在給定的例子這裏的類型的字典具有各6個元件。在我的真實情況下,他們有25000,數據框的索引從1
開始。所以我想將這個數據幀分成25個不同的子片,每個子片都被轉儲到同一個主文件的專用Excel工作表中。
預期結果:一個 Excel文件與倍張。標題重複。
>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(sheet)'do?是的,它命名牀單,但是如何? – FaCoffee
另外,由於'mydf.index'從'1'開始,你如何從'0'開始? – FaCoffee
@ CF84是字符串格式。我製作了「supe_」,可以是你選擇的任何東西。那裏的'{}'與'.format(sheet)'一起使用,其中'sheet'中的值被放置在字符串中{{}}的位置。所以你可以迭代'[0,1,2]'和'super_ {}'的值,format(sheet)'將會評估爲'super_0'','super_1''和''super_2' '。按照您認爲合適的方式替換它。 – piRSquared