Intellipaat Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Data Science by (17.6k points)

I have a list of tuples like

data = [

('r1', 'c1', avg11, stdev11),

('r1', 'c2', avg12, stdev12),

('r2', 'c1', avg21, stdev21),

('r2', 'c2', avg22, stdev22)

]

and I would like to put them into a pandas DataFrame with rows named by the first column and columns named by the 2nd column. It seems the way to take care of the row names is something like pandas.DataFrame([x[1:] for x in data], index = [x[0] for x in data]) but how do I take care of the columns to get a 2x2 matrix (the output from the previous set is 3x4)? Is there a more intelligent way of taking care of row labels as well, instead of explicitly omitting them?

EDIT It seems I will need 2 DataFrames - one for averages and one for standard deviations, is that correct? Or can I store a list of values in each "cell"?

1 Answer

0 votes
by (41.4k points)
edited by

You can pivot your DataFrame after creating:

df = pd.DataFrame(data)

df.pivot(index=0, columns=1, values=2)

# avg DataFrame

1      c1 c2

0               

r1  avg11  avg12

r2  avg21  avg22

>>> df.pivot(index=0, columns=1, values=3)

# stdev DataFrame

1        c1 c2

0                   

r1  stdev11  stdev12

r2  stdev21  stdev22

Learn more about Matplotlib by watching this video tutorial:

If you are interested to learn Pandas visit this Python Pandas Tutorial.

Related questions

0 votes
1 answer
0 votes
1 answer
asked Feb 24, 2021 in Python by laddulakshana (16.4k points)
0 votes
1 answer

31k questions

32.8k answers

501 comments

693 users

Browse Categories

...