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