同じ長さの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枚のシートがあり、ヘッダーが繰り返され、各シートに2列の値がありますか?
EDIT
ここでdicts 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
'シート名を= 'super _ {}'。書式(シート) 'do?はい、それはシートの名前ですが、どうですか? – FaCoffee
また、 'mydf.index'は' 1'から始まるので、どのように '0'から始めるのですか? – FaCoffee
@ CF84これは文字列の書式設定です。私は '' supe_''を作って、あなたが選んだものになる可能性があります。そこの '{}'は '.format(sheet)'と一緒になり、 'sheet 'の値は' {} 'が文字列内にあったところに置かれます。したがって、あなたは '[0,1,2]'と '' super _ {} 'の値を繰り返し処理し、 '' super_0''、 '' super_1''、 '' super_2' '。あなたが合っているかのように交換してください。 – piRSquared