Indexación en Pandas: La
indexación en pandas significa simplemente seleccionar filas y columnas particulares de datos de un DataFrame. Indexar podría significar seleccionar todas las filas y algunas de las columnas, algunas de las filas y todas las columnas, o algunas de cada una de las filas y columnas. La indexación también se conoce como selección de subconjuntos .
Veamos algún ejemplo de indexación en Pandas. En este artículo, estamos usando nba.csv
el archivo “ ” para descargar el CSV, haga clic aquí .
Seleccionar algunas filas y algunas columnas
Tomemos un DataFrame con algunos datos falsos, ahora realizamos la indexación en este DataFrame. En esto, estamos seleccionando algunas filas y algunas columnas de un DataFrame. Marco de datos con conjunto de datos.
Supongamos que queremos seleccionar columnas Age
, College
y Salary
solo para filas con etiquetas Amir Johnson
y Terry Rozier
nuestro marco de datos final se vería así:
Seleccionar algunas filas y todas las columnas
Digamos que queremos seleccionar la fila Amir Jhonson
y Terry Rozier
con John Holland
todas las columnas en un marco de datos.
Nuestro DataFrame final se vería así:
Seleccionar algunas columnas y todas las filas
Digamos que queremos seleccionar las columnas Edad, Altura y Salario con todas las filas en un marco de datos.
Nuestro DataFrame final se vería así:
Indexación de pandas usando [ ]
, .loc[]
, .iloc[ ]
,.ix[ ]
Hay muchas formas de extraer elementos, filas y columnas de un DataFrame. Hay algún método de indexación en Pandas que ayuda a obtener un elemento de un DataFrame. Estos métodos de indexación parecen muy similares pero se comportan de manera muy diferente. Pandas admite cuatro tipos de indexación de ejes múltiples:
- Marco de datos.[ ] ; Esta función también conocida como operador de indexación
- Dataframe.loc[ ] : esta función se usa para etiquetas.
- Dataframe.iloc[ ] : esta función se usa para posiciones o números enteros
- Dataframe.ix[] : esta función se usa tanto para etiquetas como para números enteros
En conjunto, se denominan indexadores . Estas son, con mucho, las formas más comunes de indexar datos. Estas son cuatro funciones que ayudan a obtener los elementos, filas y columnas de un DataFrame.
Indexación de un marco de datos usando el operador de indexación []
:
el operador de indexación se usa para referirse a los corchetes que siguen a un objeto. Los indexadores .loc
y también usan el operador de indexación para hacer selecciones. .iloc
En este operador de indexación para referirse a df[].
Selección de una sola columna
Para seleccionar una sola columna, simplemente ponemos el nombre de la columna entre corchetes
# importing pandas package import pandas as pd # making data frame from csv file data = pd.read_csv("nba.csv", index_col ="Name") # retrieving columns by indexing operator first = data["Age"] print(first)
Producción:
Selección de varias columnas
Para seleccionar varias columnas, tenemos que pasar una lista de columnas en un operador de indexación.
# importing pandas package import pandas as pd # making data frame from csv file data = pd.read_csv("nba.csv", index_col ="Name") # retrieving multiple columns by indexing operator first = data[["Age", "College", "Salary"]] first
Salida:
indexación de un marco de datos usando .loc[ ]
:
esta función selecciona datos por la etiqueta de las filas y columnas. El df.loc
indexador selecciona los datos de una manera diferente a la del operador de indexación. Puede seleccionar subconjuntos de filas o columnas. También puede seleccionar simultáneamente subconjuntos de filas y columnas.
Selección de una sola fila
Para seleccionar una sola fila usando .loc[]
, colocamos una etiqueta de fila única en una .loc
función.
# importing pandas package import pandas as pd # making data frame from csv file data = pd.read_csv("nba.csv", index_col ="Name") # retrieving row by loc method first = data.loc["Avery Bradley"] second = data.loc["R.J. Hunter"] print(first, "\n\n\n", second)
Salida:
como se muestra en la imagen de salida, se devolvieron dos series ya que solo había un parámetro en ambas ocasiones.
Selección de varias filas
Para seleccionar varias filas, colocamos todas las etiquetas de las filas en una lista y las pasamos a la .loc
función.
import pandas as pd # making data frame from csv file data = pd.read_csv("nba.csv", index_col ="Name") # retrieving multiple rows by loc method first = data.loc[["Avery Bradley", "R.J. Hunter"]] print(first)
Producción:
Selección de dos filas y tres columnas
Para seleccionar dos filas y tres columnas, seleccionamos dos filas que queremos seleccionar y tres columnas y las colocamos en una lista separada como esta:
Dataframe.loc[["row1", "row2"], ["column1", "column2", "column3"]]
import pandas as pd # making data frame from csv file data = pd.read_csv("nba.csv", index_col ="Name") # retrieving two rows and three columns by loc method first = data.loc[["Avery Bradley", "R.J. Hunter"], ["Team", "Number", "Position"]] print(first)
Producción:
Seleccionar todas las filas y algunas columnas
Para seleccionar todas las filas y algunas columnas, usamos dos puntos [:] para seleccionar todas las filas y la lista de algunas columnas que queremos seleccionar así:
Dataframe.loc[:, ["column1", "column2", "column3"]]
import pandas as pd # making data frame from csv file data = pd.read_csv("nba.csv", index_col ="Name") # retrieving all rows and some columns by loc method first = data.loc[:, ["Team", "Number", "Position"]] print(first)
Salida:
indexación de un marco de datos usando .iloc[ ]
:
esta función nos permite recuperar filas y columnas por posición. Para hacer eso, necesitaremos especificar las posiciones de las filas que queremos, y las posiciones de las columnas que queremos también. El df.iloc
indexador es muy similar a df.loc
pero solo usa ubicaciones enteras para hacer sus selecciones.
Selección de una sola fila
Para seleccionar una sola fila usando .iloc[]
, podemos pasar un solo entero a la .iloc[]
función.
import pandas as pd # making data frame from csv file data = pd.read_csv("nba.csv", index_col ="Name") # retrieving rows by iloc method row2 = data.iloc[3] print(row2)
Producción:
Selección de varias filas
Para seleccionar varias filas, podemos pasar una lista de enteros a la .iloc[]
función.
import pandas as pd # making data frame from csv file data = pd.read_csv("nba.csv", index_col ="Name") # retrieving multiple rows by iloc method row2 = data.iloc [[3, 5, 7]] row2
Producción:
Selección de dos filas y dos columnas
Para seleccionar dos filas y dos columnas, creamos una lista de 2 enteros para filas y una lista de 2 enteros para columnas y luego pasamos a una .iloc[]
función.
import pandas as pd # making data frame from csv file data = pd.read_csv("nba.csv", index_col ="Name") # retrieving two rows and two columns by iloc method row2 = data.iloc [[3, 4], [1, 2]] print(row2)
Producción:
Seleccionando todas las filas y algunas columnas
Para seleccionar todas las filas y algunas columnas, usamos dos puntos [:] para seleccionar todas las filas y para las columnas hacemos una lista de enteros y luego pasamos a una .iloc[]
función.
import pandas as pd # making data frame from csv file data = pd.read_csv("nba.csv", index_col ="Name") # retrieving all rows and some columns by iloc method row2 = data.iloc [:, [1, 2]] print(row2)
Salida:
Indexación de un usando Dataframe.ix[ ] :
Al principio del desarrollo de pandas, existía otro indexador, ix
. Este indexador fue capaz de seleccionar tanto por etiqueta como por ubicación de enteros. Si bien era versátil, causó mucha confusión porque no es explícito. A veces, los números enteros también pueden ser etiquetas para filas o columnas. Por lo tanto, hubo casos en los que fue ambiguo. Por lo general, ix
se basa en etiquetas y actúa como el indexador de .loc . Sin embargo, .ix
también admite selecciones de tipo entero (como en .iloc) donde se pasa un número entero. Esto solo funciona cuando el índice de DataFrame no está basado en números enteros .ix
y aceptará cualquiera de las entradas de .loc
y .iloc
.
Nota: El .ixindexer ha quedado obsoleto en versiones recientes de Pandas.
Seleccionando una sola fila usando .ix[]
como.loc[]
Para seleccionar una sola fila, colocamos una etiqueta de fila única en una .ix
función. Esta función actúa de manera similar a .loc[] si pasamos una etiqueta de fila como argumento de una función.
# importing pandas package import pandas as pd # making data frame from csv file data = pd.read_csv("nba.csv", index_col ="Name") # retrieving row by ix method first = data.ix["Avery Bradley"] print(first)
Producción:
Seleccionando una sola fila usando .ix[]
como.iloc[]
Para seleccionar una sola fila, podemos pasar un solo entero a la .ix[]
función. Esta función es similar a una función iloc[] si pasamos un número entero en una .ix[]
función.
# importing pandas package import pandas as pd # making data frame from csv file data = pd.read_csv("nba.csv", index_col ="Name") # retrieving row by ix method first = data.ix[1] print(first)
Producción:
Métodos para indexar en DataFrame
Función | Descripción |
---|---|
Marco de datos.head() | Devuelve las n filas superiores de un marco de datos. |
Marco de datos.tail() | Devuelve n las filas inferiores de un marco de datos. |
Marco de datos.at[] | Acceda a un solo valor para un par de etiquetas de fila/columna. |
Marco de datos.iat[] | Acceda a un valor único para un par de filas/columnas por posición de número entero. |
Marco de datos.tail() | Indexación puramente basada en la ubicación de enteros para la selección por posición. |
Marco de datos.búsqueda() | Función de «indexación elegante» basada en etiquetas para DataFrame. |
Marco de datos.pop() | Devuelva el artículo y suéltelo del marco. |
Marco de datos.xs() | Devuelve una sección transversal (fila(s) o columna(s)) del DataFrame. |
Marco de datos.get() | Obtenga el elemento del objeto para la clave dada (columna DataFrame, sector del panel, etc.). |
Marco de datos.isin() | Retorna el DataFrame booleano que muestra si cada elemento del DataFrame está contenido en valores. |
Marco de datos.where() | Devuelve un objeto de la misma forma que self y cuyas entradas correspondientes son de self donde cond es True y de lo contrario son de other. |
Marco de datos.mask() | Devuelve un objeto de la misma forma que self y cuyas entradas correspondientes son de self donde cond es False y de lo contrario son de other. |
Marco de datos.consulta() | Consulta las columnas de un marco con una expresión booleana. |
Marco de datos.insertar() | Inserte la columna en DataFrame en la ubicación especificada. |
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA