I have a spreadsheet like this:
Locality 2005 2006 2007 2008 2009 ABBOTSFORD 427000 448000 602500 600000 638500 ABERFELDIE 534000 600000 735000 710000 775000 AIREYS INLET459000 440000 430000 517500 512500
I don’t want to manually swap the column with the row. Could it be possible to use pandas reading data to a list as this:
data['ABBOTSFORD']=[427000,448000,602500,600000,638500] data['ABERFELDIE']=[534000,600000,735000,710000,775000] data['AIREYS INLET']=[459000,440000,430000,517500,512500]
Advertisement
Answer
Yes, with pandas.DataFrame.set_index
you can make 'Locality'
your row index.
data.set_index('Locality', inplace=True)
If inplace=True
is not provided, set_index
returns the modified dataframe as a result.
Example:
> import pandas as pd > df = pd.DataFrame([['ABBOTSFORD', 427000, 448000], ['ABERFELDIE', 534000, 600000]], columns=['Locality', 2005, 2006]) > df Locality 2005 2006 0 ABBOTSFORD 427000 448000 1 ABERFELDIE 534000 600000 > df.set_index('Locality', inplace=True) > df 2005 2006 Locality ABBOTSFORD 427000 448000 ABERFELDIE 534000 600000 > df.loc['ABBOTSFORD'] 2005 427000 2006 448000 Name: ABBOTSFORD, dtype: int64 > df.loc['ABBOTSFORD'][2005] 427000 > df.loc['ABBOTSFORD'].values array([427000, 448000]) > df.loc['ABBOTSFORD'].tolist() [427000, 448000]