Introducción a Pandas – Lección 2

Compartir esta publicación

Introducción

Comenzamos con el segundo post de nuestra saga de formación con Pandas. En este artículo vamos a hacer un resumen de las diferentes funciones que se utilizan en Pandas para realizar la Indexación, Selección y Filtrado.

Indexación, selección y filtrado

Antes de empezar, vamos a visualizar un pequeño conjunto de datos de ejemplo que vamos a seguir para poner los ejemplos. Se trata de un conjunto de datos muy conocido que contiene información sobre el vino.

L4cf9q sQuElZ4nStA8Y4OM82Cvsmwo5fSH95LYVhLCcikX7L5PVEOeTIeo7TOPJ2zt2ThhToK3Ha6k8AsX6SDyuJj63d

Como introducción, vamos a explicar algunas funciones que pueden ser muy útiles a la hora de obtener una visión más amplia del estado de nuestro conjunto de datos.

Obteniendo información

Información

Empezaremos con la función info(), que nos ofrece información sobre el número de columnas, el nombre de cada columna, Empezaremos con la función info(), que nos ofrece información sobre el número y los nombres de las columnas, el número de elementos no nulos y el tipo de datos de cada columna.

df.info()

Wines Dataset: 

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1599 entries, 0 to 1598
Data columns (total 12 columns):
 #   Column                Non-Null Count  Dtype  
---  ------                --------------  -----  
 0   fixed acidity         1599 non-null   float64
 1   volatile acidity      1599 non-null   float64
 2   citric acid           1599 non-null   float64
 3   residual sugar        1599 non-null   float64
 4   chlorides             1599 non-null   float64
 5   free sulfur dioxide   1599 non-null   float64
 6   total sulfur dioxide  1599 non-null   float64
 7   density               1599 non-null   float64
 8   pH                    1599 non-null   float64
 9   sulphates             1599 non-null   float64
 10  alcohol               1599 non-null   float64
 11  quality               1599 non-null   int64  
dtypes: float64(11), int64(1)
memory usage: 150.0 KB

Dtypes

Continuamos con el atributo dtypes que nos muestra exclusivamente el tipo de datos de cada columna.

df.dtypes

Wines Dataset: 

fixed acidity           float64
volatile acidity        float64
citric acid             float64
residual sugar          float64
chlorides               float64
free sulfur dioxide     float64
total sulfur dioxide    float64
density                 float64
pH                      float64
sulphates               float64
alcohol                 float64
quality                   int64
dtype: object

Describe

La siguiente función nos proporciona información sobre numerosos cálculos estadísticos que nos ayudan a comprender la distribución de nuestro conjunto de datos.

df.describe()


Wines Dataset: 

fixed acidity	volatile acidity	citric acid	residual sugar	chlorides	free sulfur dioxide	total sulfur dioxide	density	pH	sulphates	alcohol	quality
count	1599.000000	1599.000000	1599.000000	1599.000000	1599.000000	1599.000000	1599.000000	1599.000000	1599.000000	1599.000000	1599.000000	1599.000000
mean	8.319637	0.527821	0.270976	2.538806	0.087467	15.874922	46.467792	0.996747	3.311113	0.658149	10.422983	5.636023
std	1.741096	0.179060	0.194801	1.409928	0.047065	10.460157	32.895324	0.001887	0.154386	0.169507	1.065668	0.807569
min	4.600000	0.120000	0.000000	0.900000	0.012000	1.000000	6.000000	0.990070	2.740000	0.330000	8.400000	3.000000
25%	7.100000	0.390000	0.090000	1.900000	0.070000	7.000000	22.000000	0.995600	3.210000	0.550000	9.500000	5.000000
50%	7.900000	0.520000	0.260000	2.200000	0.079000	14.000000	38.000000	0.996750	3.310000	0.620000	10.200000	6.000000
75%	9.200000	0.640000	0.420000	2.600000	0.090000	21.000000	62.000000	0.997835	3.400000	0.730000	11.100000	6.000000
max	15.900000	1.580000	1.000000	15.500000	0.611000	72.000000	289.000000	1.003690	4.010000	2.000000	14.900000	8.000000

Indexación y selección

Aquí vamos a profundizar en la explicación de las dos principales funciones pandas de indexación y selección: ‘iloc’ and ‘loc’

  3a edición del International Summer School sobre Inteligencia Artificial y Juegos: Ganador de la AI Game Jam Garden of AIden

+ .loc se basa principalmente en etiquetas, pero también puede utilizarse con una matriz booleana. .loc lanzará un KeyError cuando no se encuentren los elementos. Las entradas permitidas son:

    – Una sola etiqueta, por ejemplo, 5 o ‘a’ (Nótese que 5 se interpreta como una etiqueta del índice. Este uso no es una posición entera a lo largo del índice).

    – Una lista o matriz de etiquetas [‘a’, ‘b’, ‘c’].

    – Un objeto slice con las etiquetas ‘a’:’f’ ( Al contrario de lo que ocurre con los slices habituales de Python, se incluyen tanto el inicio como el final, cuando están presentes en el índice! Ver Slicing con labels y Endpoints son inclusivos).

    – Una matriz booleana (cualquier valor NA será tratado como Falso).

    – Una función invocable con un argumento (la Serie o el DataFrame de llamada) y que devuelve una salida válida para la indexación (una de las anteriores).

+ .iloc se basa principalmente en posiciones enteras (de 0 a la longitud-1 del eje), pero también puede utilizarse con una matriz booleana. .iloc lanzará un IndexError si un indexador solicitado está fuera de los límites, excepto los indexadores de rodajas que permiten la indexación fuera de los límites. (esto se ajusta a la semántica de cortes de Python/NumPy). Las entradas permitidas son:

  – Un número entero, por ejemplo, 5.

  – Una lista o matriz de enteros [4, 3, 0].

  – Un objeto slice con ints 1:7.

  – Una matriz booleana (cualquier valor NA será tratado como Falso).

  – Una función invocable con un argumento (la Serie o el DataFrame de llamada) y que devuelve una salida válida para la indexación (una de las anteriores).

  Entrevista sobre machine learning con Gema Parreño - Científica Principal de Datos en Apiumhub

No hay mejor manera de entender cómo funciona una función que mostrando ejemplos, así que aquí tienes un amplio abanico de ejemplos de uso para ver cuáles son las diferentes maneras de utilizarlas.

Ejemplos de `iloc`

+ Obtener la primera fila

df.iloc[0]

+ Obtener la primera columna

df.iloc[:, 0]

+ Obtener la primera columna de la primera fila

df.iloc[0:1, 0]

+ Obtener filas de 3 a 5

df.iloc[3:5]

+ Obtener las filas 3, 7, 10

df.iloc[[3, 7, 10]]

+ Obtener las últimas cinco filas

df.iloc[-5:]

Ejemplos de `loc`

+ Obtener la primera fila de la columna «quality»

df.loc[0, 'quality']

+ Obtener todas las filas de las columnas «quality», «sulphates», «alcohol»

df.loc[:, ['quality', 'sulphates', 'alcohol']]

+ Obtener de la fila llamada «litres» hacia adelante de las columnas «quality» a «alcohol»

df1.loc['litres':, 'quality':'alcohol']

+ Obtener filas de 3 a 5 (Diferente de iloc)

df.loc[3:5]

Filtrado

Una de las cosas que más nos ayuda cuando trabajamos con datos es poder filtrarlos según ciertas condiciones. Para ellos, la función `loc` nos permite introducir estas condiciones de la siguiente manera:

+ Obtén todos los vinos cuya calidad sea superior a 6

wines.loc[wines.quality > 6]

+ Obtén todos los vinos cuya calidad sea superior a 5 e inferior a 8

wines.loc[(wines.quality > 5) & (wines.quality < 8)]

+ Obtén todos los vinos cuya calidad sea igual a 5 o igual a 7

wines.loc[(wines.quality == 5) | (wines.quality == 7)]

Entrenando tus habilidades

Si quieres llevar tus habilidades un paso más allá en Ciencia de Datos, hemos creado un curso que puedes descargar gratuitamente aquí.

En el próximo capítulo, profundizaremos en las funciones que utilizamos para iterar, mapear, agrupar y ordenar.

Author

  Flutter Vanilla State Management

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Suscríbete a nuestro boletín de noticias

Recibe actualizaciones de los últimos descubrimientos tecnológicos

¿Tienes un proyecto desafiante?

Podemos trabajar juntos

apiumhub software development projects barcelona
Secured By miniOrange