J'ai un tableur comme ça:
Locality 2005 2006 2007 2008 2009
ABBOTSFORD 427000 448000 602500 600000 638500
ABERFELDIE 534000 600000 735000 710000 775000
AIREYS INLET459000 440000 430000 517500 512500
Je ne veux pas échanger manuellement la colonne avec la ligne. Est-il possible d'utiliser pandas en lisant des données dans une liste comme celle-ci:
data['ABBOTSFORD']=[427000,448000,602500,600000,638500]
data['ABERFELDIE']=[534000,600000,735000,710000,775000]
data['AIREYS INLET']=[459000,440000,430000,517500,512500]
Oui, avec set_index , vous pouvez définir Locality
votre index de ligne.
data.set_index('Locality', inplace=True)
Si inplace=True
n'est pas fourni, set_index
renvoie le cadre de données modifié.
Exemple:
> 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]
Vous pouvez modifier l'index comme expliqué précédemment à l'aide de set_index
. Vous n'avez pas besoin d'échanger manuellement les lignes avec les colonnes, il existe une méthode de transposition (data.T
) dans pandas qui le fait à votre place:
> df = pd.DataFrame([['ABBOTSFORD', 427000, 448000],
['ABERFELDIE', 534000, 600000]],
columns=['Locality', 2005, 2006])
> newdf = df.set_index('Locality').T
> newdf
Locality ABBOTSFORD ABERFELDIE
2005 427000 534000
2006 448000 600000
alors vous pouvez récupérer les valeurs de la colonne dataframe et les transformer en une liste:
> newdf['ABBOTSFORD'].values.tolist()
[427000, 448000]
Vous pouvez définir l'index de colonne à l'aide du paramètre index_col disponible lors de la lecture d'un tableur dans Pandas.
Voici ma solution:
Tout d’abord, importez pandas comme pd: import pandas as pd
Lisez le nom du fichier en utilisant pd.read_Excel () (si vos données sont dans une feuille de calcul) et définissez l'index sur 'Locality' en spécifiant le paramètre index_col .
df = pd.read_Excel('testexcel.xlsx', index_col=0)
À ce stade, si vous obtenez une erreur "Aucun module nommé xlrd", installez-le à l'aide de pip install xlrd
.
Pour l'inspection visuelle, lisez le cadre de données en utilisant df.head()
qui imprimera la sortie suivante
Maintenant, vous pouvez récupérer les valeurs des colonnes désirées du dataframe et l’imprimer