python - open - ¿Podrían los pandas usar la columna como índice?
python pandas read excel column (3)
Puede cambiar el índice como se explicó anteriormente usando
set_index
.
No necesita intercambiar filas manualmente con columnas, hay un método de transposición (
data.T
) en pandas que lo hace por usted:
> 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
entonces puede buscar los valores de columna del marco de datos y transformarlos en una lista:
> newdf[''ABBOTSFORD''].values.tolist()
[427000, 448000]
Tengo una hoja de cálculo como esta:
Locality 2005 2006 2007 2008 2009
ABBOTSFORD 427000 448000 602500 600000 638500
ABERFELDIE 534000 600000 735000 710000 775000
AIREYS INLET459000 440000 430000 517500 512500
No quiero intercambiar manualmente la columna con la fila. ¿Podría ser posible usar pandas para leer datos en una lista como esta:
data[''ABBOTSFORD'']=[427000,448000,602500,600000,638500]
data[''ABERFELDIE'']=[534000,600000,735000,710000,775000]
data[''AIREYS INLET'']=[459000,440000,430000,517500,512500]
Puede establecer el índice de la columna utilizando el parámetro index_col disponible mientras lee desde la hoja de cálculo en Pandas.
Aquí está mi solución:
-
En primer lugar, importar pandas como pd:
import pandas as pd
-
Lea el nombre de archivo usando pd.read_excel () (si tiene sus datos en una hoja de cálculo) y establezca el índice en ''Localidad'' especificando el parámetro index_col.
df = pd.read_excel(''testexcel.xlsx'', index_col=0)
En esta etapa, si obtiene el error ''sin módulo llamado xlrd'', instálelo utilizando
pip install xlrd
. -
Para la inspección visual, lea el marco de datos usando
df.head()
que imprimirá el siguiente resultado -
Ahora puede obtener los valores de las columnas deseadas del marco de datos e imprimirlo
Sí, con
set_index
puede hacer que
Locality
su índice de fila.
data.set_index(''Locality'', inplace=True)
Si no se proporciona
inplace=True
,
set_index
devuelve el marco de datos modificado como resultado.
Ejemplo:
> 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]