using zip for transpose
Peter Otten
__peter__ at web.de
Thu Feb 21 08:49:27 EST 2019
Robin Becker wrote:
> In conversion of pandas dataframe to reportlab table I suggested using
> this expression
>
> [list(x) for x in map(list,zip(*[df[i].values for i in df]))]
>
> which effectively transposes the dataframe. However, it's not clear that
> this works for a large number of rows. Is the argument *A for A a large
> list just copied into the zip *args; I suppose calling
> zip(A[0],A[1],......A[len(A)-1]) cannot be how this is done.
Isn't df.values a numpy array? Then try the more direct and likely more
efficient
df.values.tolist()
or, if you ever want to transpose
df.values.T.tolist()
The first seems to achieve what your sample code does. (In addition it also
converts the numpy type to the corresponding python builtin, i. e.
numpy.float64 becomes float etc.)
More information about the Python-list
mailing list