Construct pandas DataFrame from list of tuples of (row,col,values) Construct pandas DataFrame from list of tuples of (row,col,values) python python

Construct pandas DataFrame from list of tuples of (row,col,values)


You can pivot your DataFrame after creating:

>>> df = pd.DataFrame(data)>>> df.pivot(index=0, columns=1, values=2)# avg DataFrame1      c1     c20               r1  avg11  avg12r2  avg21  avg22>>> df.pivot(index=0, columns=1, values=3)# stdev DataFrame1        c1       c20                   r1  stdev11  stdev12r2  stdev21  stdev22


I submit that it is better to leave your data stacked as it is:

df = pandas.DataFrame(data, columns=['R_Number', 'C_Number', 'Avg', 'Std'])# Possibly also this if these can always be the indexes:# df = df.set_index(['R_Number', 'C_Number'])

Then it's a bit more intuitive to say

df.set_index(['R_Number', 'C_Number']).Avg.unstack(level=1)

This way it is implicit that you're seeking to reshape the averages, or the standard deviations. Whereas, just using pivot, it's purely based on column convention as to what semantic entity it is that you are reshaping.


This is what I expected to see when I came to this question:

#!/usr/bin/env pythonimport pandas as pddf = pd.DataFrame([(1, 2, 3, 4),                   (5, 6, 7, 8),                   (9, 0, 1, 2),                   (3, 4, 5, 6)],                  columns=list('abcd'),                  index=['India', 'France', 'England', 'Germany'])print(df)

gives

         a  b  c  dIndia    1  2  3  4France   5  6  7  8England  9  0  1  2Germany  3  4  5  6