Nested List to Pandas Dataframe with headers

Basically I am trying to do the opposite of How to generate a list from a pandas DataFrame with the column name and column values?

To borrow that example, I want to go from the form:

data = [['Name','Rank','Complete'], ['one', 1, 1], ['two', 2, 1], ['three', 3, 1], ['four', 4, 1], ['five', 5, 1]] 

which should output:

 Name Rank Complete One 1 1 Two 2 1 Three 3 1 Four 4 1 Five 5 1 

However when I do something like:

pd.DataFrame(data) 

I get a dataframe where the first list should be my colnames, and then the first element of each list should be the rowname

EDIT:

To clarify, I want the first element of each list to be the row name. I am scrapping data so it is formatted this way...

1 Answer

One way to do this would be to take the column names as a separate list and then only give from 1st index for pd.DataFrame -

In [8]: data = [['Name','Rank','Complete'], ...: ['one', 1, 1], ...: ['two', 2, 1], ...: ['three', 3, 1], ...: ['four', 4, 1], ...: ['five', 5, 1]] In [10]: df = pd.DataFrame(data[1:],columns=data[0]) In [11]: df Out[11]: Name Rank Complete 0 one 1 1 1 two 2 1 2 three 3 1 3 four 4 1 4 five 5 1 

If you want to set the first column Name column as index, use the .set_index() method and send in the column to use for index. Example -

In [16]: df = pd.DataFrame(data[1:],columns=data[0]).set_index('Name') In [17]: df Out[17]: Rank Complete Name one 1 1 two 2 1 three 3 1 four 4 1 five 5 1 
1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like