Curso Gratuito en Ciencia de Datos y Aprendizaje Automático con Python: Pandas

Curso Gratuito en Ciencia de Datos y Aprendizaje Automático con Python




Pandas


Pandas [ 4 ] es un módulo poderoso que está optimizado sobre Numpy y proporciona un conjunto de estructuras de datos especialmente adecuadas para el análisis de datos de series de tiempo y estilo de hoja de cálculo (piense en tablas dinámicas en Excel). Si está familiarizado con el paquete estadístico R , puede pensar en Pandas como un marco de datos con tecnología Numpy para Python.


Serie


Hay dos estructuras de datos principales en Pandas. El primero es el objeto Serie, que combina un índice y los valores de datos correspondientes.


code

Lo principal a tener en cuenta con Pandas es que estas estructuras de datos fueron originalmente diseñadas para trabajar con datos de series de tiempo . En ese caso, el índice en las estructuras de datos corresponde a una secuencia de marcas de tiempo ordenadas. En el caso general, el índice debe ser una especie capaz- matriz-como entidad. Por ejemplo,


code

Tenga en cuenta las entradas z duplicadas en el índice . Podemos acceder a las entradas de la Serie de varias formas. Primero, podemos usar la notación de puntos para seleccionar como se muestra a continuación:


code

También podemos usar la posición indexada de las entradas con iloc como se muestra a continuación:


code

que usa la misma sintaxis de corte que las matrices Numpy. También puede dividir el índice , incluso si no es numérico con loc como se muestra a continuación:


code

que puede obtener directamente de la notación de corte habitual:


code

Tenga en cuenta que, a diferencia de Python, dividir de esta manera incluye los puntos finales. Si bien eso es muy interesante, el poder principal de Pandas proviene de su poder para agregar y agrupar datos. A continuación, construimos un objeto Serie más interesante :


code

y luego agrúpelo de la siguiente manera:


code

La primera línea agrupa los elementos del objeto Serie según si el índice es par o impar. La función lambda devuelve 0 o 1 dependiendo de si el índice correspondiente es par o impar, respectivamente. La siguiente línea muestra el grupo 0 (par) y luego la siguiente muestra el grupo 1 (impar). Ahora que tenemos grupos separados, podemos realizar una amplia variedad de resúmenes en el grupo. Puede pensar en estos como reducir cada grupo en un solo valor. Por ejemplo, a continuación, obtenemos el valor máximo de cada grupo:


code

Tenga en cuenta que la operación anterior devuelve otro objeto Serie con un índice correspondiente a los elementos [0,1] .


Marco de datos


Pandas DataFrame es una encapsulación de la serie que se extiende a dos dimensiones. Una forma de crear un DataFrame es con diccionarios como se muestra a continuación:


code

Tenga en cuenta que las claves en el diccionario de entrada ahora son los encabezados de columna (etiquetas) del DataFrame , y cada columna correspondiente coincide con la lista de valores correspondientes del diccionario. Al igual que el objeto Series , el DataFrame también tiene un índice , que es la columna [0,1,2,3] en el extremo izquierdo. Podemos extraer elementos de cada columna usando el método iloc como se discutió anteriormente como se muestra a continuación


code

o cortando directamente o usando la notación de puntos como se muestra a continuación


code

Las operaciones posteriores en el DataFrame conservan su estructura de columnas como se muestra a continuación:


code

donde se totalizó cada columna. Agrupar y agregar con el marco de datos es incluso más poderoso que con Series. Construyamos el siguiente marco de datos:


code

En el marco de datos anterior, tenga en cuenta que la columna col1 tiene solo dos entradas. Podemos agrupar los datos usando esta columna de la siguiente manera:


code

Tenga en cuenta que cada grupo corresponde a entradas para las que col1 fue cualquiera de sus dos valores. Ahora que nos hemos agrupado en col1 , como con el objeto Series, también podemos resumir funcionalmente cada uno de los grupos como se muestra a continuación:


code

donde la suma se aplica a cada uno de los Dataframes presentes en cada grupo. Tenga en cuenta que el índice de la salida anterior es cada uno de los valores en el col1 original .


El marco de datos puede calcular nuevas columnas basadas en columnas existentes utilizando el método eval como se muestra a continuación


code

El marco de datos puede calcular nuevas columnas basadas en columnas existentes utilizando el método eval como se muestra a continuación


code

Tenga en cuenta que puede asignar la salida a una nueva columna del marco de datos como se muestra. 4 Podemos agrupar por múltiples columnas como se muestra a continuación


code

Al hacer la operación de suma en cada grupo se obtiene lo siguiente:


code

Esta salida es mucho más complicada que cualquier cosa que hayamos visto hasta ahora, así que analicémosla con cuidado. Debajo de los encabezados, la primera fila 2 1 1 indica que para sum_col = 2 y para todos los valores de col1 (es decir, solo el valor 1 ), el valor de col2 es 1 . Para la siguiente fila, se aplica el mismo patrón excepto que para sum_col = 3 , ahora hay dos valores para col1 , a saber, 0 y 1 , cada uno de los cuales tiene sus dos valores correspondientes para la operación de suma en col2. Esta pantalla en capas es una forma de ver el resultado. Tenga en cuenta que las capas de arriba no son uniformes. Alternativamente, podemos desapilar este resultado para obtener la siguiente vista tabular del resultado anterior:


4 Nota este tipo de sobre-el-mosca de ampliación de memoria no es posible en Numpy regular. Por ejemplo, x = np.array ([1,2]); x [3] = 3 genera un error. code

Los valores de NaN indican posiciones en la tabla donde no hay entrada. Por ejemplo, para el par (sum_col = 2, col2 = 0) , no hay un valor correspondiente en el Dataframe, como puede verificar al mirar el penúltimo bloque de código. Tampoco hay ninguna entrada correspondiente al par (sum_col = 4, col2 = 1) . Por lo tanto, esto muestra que la presentación original en el penúltimo bloque de código es la misma que esta, solo que sin las entradas faltantes mencionadas anteriormente indicadas por NaN .


code

Apenas hemos arañado la superficie de lo que Pandas es capaz de hacer y hemos ignorado por completo sus potentes funciones para administrar fechas y horas. El texto de Mckinney [ 4 ] es una introducción muy completa y felizmente legible a Pandas. La documentación en línea y los tutoriales en el sitio principal de Pandas también son excelentes para profundizar en Pandas.


JeshuaNomics

JeshuaNomics - DataScience es una web de divulgación donde se puede encontrar material formativo en ciencia de datos y programación estadística (R, Python y SQL).

Publicar un comentario (0)
Artículo Anterior Artículo Siguiente