U o^@s*ddlZddlmZdddZddZdS) N) accumulateTc#sddl}ddlm|jj}tdd|D}dg||D]f}|j}|jj|j kr|| fdd| D}| |j }|}t|j|D]\} } | | <qq<|r2|jjdkrt|jj|jj} nt|jjg} | D]T} g} | D]$}t||j r|}| |q| } |r*dg|jj| } | Vq|rB|jjVt|jD]8\}fd dt|D} |r||g| } | VqLdS) a> Convert a Pandas dataframe into something suitable for passing into a worksheet. If index is True then the index will be included, starting one row below the header. If header is True then column headers will be included starting one column to the right. Formatting should be done by client code. rN Timestampcss|]}|jdVqdS)rN)shape).0brr/private/var/folders/sd/whlwsn6x1_qgglc0mjv25_695qk2gl/T/pip-install-4zq3fp6i/openpyxl/openpyxl/utils/dataframe.py sz$dataframe_to_rows..csg|] }|qSrr)rvrrr sz%dataframe_to_rows..csg|]}|qSrr)rj)dataidxrr r 5s)numpyZpandasr_datablockssumvaluesZdtypetypeZ datetime64arrayZravelZreshapertolistzipZmgr_locscolumnsZnlevels expand_levelslevelslabelslist isinstanceappendindexnames enumeraterange)Zdfr!headerrrZncolsrrresultZcol_loccolZrowsrownr r)rrrr dataframe_to_rowssD        r*ccsVt||D]F\}}d}g}|D]*}||kr6|dq||||}q|Vq dS)z> Multiindexes need expanding so that subtitles repeat N)rr )rrlabelordercurrentr(rrrr r;s r)TT)operator itertoolsrr*rrrrr s  4