PDF de programación - Python - pandas: La biblioteca que marcó un hito en análisis de datos

Imágen de pdf Python - pandas: La biblioteca que marcó un hito en análisis de datos

Python - pandas: La biblioteca que marcó un hito en análisis de datosgráfica de visualizaciones

Publicado el 2 de Agosto del 2020
358 visualizaciones desde el 2 de Agosto del 2020
111,0 KB
40 paginas
Creado hace 52d (01/08/2020)
Python - pandas: La biblioteca
que marcó un hito en análisis

de datos

Wes McKinney (Autor original)

2011 (Año de publicación en inglés)

En este documento hablaremos de pandas, una biblioteca de
Python de estructuras y herramientas de datos enriquecidos pa-
ra trabajar con conjuntos de datos estructurados comunes a esta-
dísticas, finanzas, ciencias sociales y muchos otros campos. La bi-
blioteca proporciona rutinas integradas e intuitivas para realizar
manipulaciones y análisis de datos comunes en dichos conjuntos
de datos. Su objetivo es ser la capa fundamental para el futu-
ro de la informática estadística en Python. Sirve como un fuerte
complemento para la pila científica existente de Python, mientras
implementa y mejora los tipos de herramientas de manipulación
de datos que se encuentran en otros lenguajes de programación
estadística como R. Además de detallar su diseño y característi-
cas pandas, discutiremos futuras oportunidades de trabajo y cre-
cimiento para aplicaciones de análisis de datos y estadísticas en
lenguaje Python.

1

Introducción

Python se usa cada vez más en aplicaciones científicas tradicionalmente
dominadas por [R], [MATLAB], [Stata], [SAS], entre otros entornos de in-
vestigación comerciales o de código abierto. La madurez y la estabilidad
de las bibliotecas numéricas fundamentales ([NumPy], [SciPy] y otras), la
calidad de la documentación y la disponibilidad de distribuciones de "fre-
gadero de cocina" ([EPD], [Pythonxy]) han recorrido un largo camino ha-
ciendo que Python sea accesible y conveniente para una amplia audiencia.
Además, [matplotlib] integrado con [IPython] proporciona un entorno
interactivo de investigación y desarrollo con visualización de datos ade-
cuada para la mayoría de los usuarios. Sin embargo, la adopción de Python
para el modelado estadístico aplicado ha sido relativamente lenta en com-
paración con otras áreas de la ciencia computacional.

Una cuestión importante para los posibles programadores estadísticos de
Python en el pasado ha sido la falta de bibliotecas que implementen mode-
los estándar y un marco coherente para especificar modelos. Sin embargo,
en los últimos años ha habido nuevos desarrollos significativos en econo-
metría ([StaM]), estadísticas bayesianas ([PyMC]) y aprendizaje automáti-
co ([SciL]), entre otros campos. Sin embargo, todavía es difícil para muchos
estadísticos elegir Python sobre R dada la naturaleza específica del domi-
nio del lenguaje R y la amplitud de las bibliotecas de código abierto bien
examinadas disponibles para los usuarios de R ([CRAN]). A pesar de este
obstáculo, creemos que el lenguaje Python y las bibliotecas y herramien-
tas actualmente disponibles pueden aprovecharse para hacer de Python un
entorno superior para el análisis de datos y la computación estadística.

Otro problema que impidió a muchos usar Python en el pasado para apli-
caciones de análisis de datos ha sido la falta de estructuras de datos enri-
quecidas con manejo integrado de metadatos. Por metadatos entendemos
etiquetar información sobre puntos de datos. Por ejemplo, una tabla u hoja
de cálculo de datos probablemente tendrá etiquetas para las columnas y
posiblemente también para las filas. Alternativamente, algunas columnas
de una tabla pueden usarse para agrupar y agregar datos en una tabla di-
námica o de contingencia. En el caso de un conjunto de datos de series

2

de tiempo, las etiquetas de fila podrían ser marcas de tiempo. A menudo
es necesario tener la información de etiquetado disponible para permitir
que muchos tipos de manipulaciones de datos, como fusionar conjuntos de
datos o realizar una operación de agregación o "agrupar por", se expresen
de manera intuitiva y concisa. Los lenguajes de bases de datos específi-
cos de dominio como SQL y los lenguajes estadísticos como R y SAS tienen
una gran cantidad de tales herramientas. Hasta hace relativamente poco,
Python tenía pocas herramientas que proporcionaran el mismo nivel de ri-
queza y expresividad para trabajar con conjuntos de datos etiquetados.

La biblioteca de pandas, en desarrollo desde 2008, está destinada a cerrar
la brecha en la riqueza de las herramientas de análisis de datos disponibles
entre Python, un lenguaje de sistemas científicos y sistemas de propósito
general, y las numerosas plataformas de computación estadística y lengua-
jes de bases de datos específicos. Nuestro objetivo no solo es proporcionar
una funcionalidad equivalente, sino también implementar muchas caracte-
rísticas, como la alineación automática de datos y la indexación jerárquica,
que no están disponibles de manera tan estrechamente integrada en otras
bibliotecas o entornos informáticos que sepamos. Aunque inicialmente se
desarrolló para aplicaciones de análisis de datos financieros, esperamos
que pandas permita a Python científico ser un entorno de computación es-
tadística más atractivo y práctico para profesionales académicos y de la
industria por igual. El nombre de la biblioteca deriva de los datos del panel,
si bien ofrecemos una viñeta de algunas de las principales características
de interés en pandas, este documento no es de ninguna manera exhausti-
vo. Para obtener más información, remitimos al lector interesado a la do-
cumentación en línea en https://pandas.pydata.org/docs/ ([pandas]).

Conjuntos de datos estructurados

Los conjuntos de datos estructurados suelen llegar en formato tabular, es
decir como una lista bidimensional de observaciones y nombres para los
campos de cada observación. Por lo general, una observación puede iden-
tificarse de manera única mediante uno o más valores o etiquetas. Mostra-

3

mos un conjunto de datos de ejemplo para un par de acciones en el trans-
curso de varios días. La matriz de datos NumPy con dtype estructurado se
puede utilizar para contener estos datos:

>>> data

array([(’GOOG’, ’2009 - 12 - 28’, 622.87, 1697900.0),
(’GOOG’, ’2009 - 12 - 29’, 619.40, 1424800.0),
(’GOOG’, ’2009 - 12 - 30’, 622.73, 1465600.0),
(’GOOG’, ’2009 - 12 - 31’, 619.98, 1219800.0),
(’AAPL’, ’2009 - 12 - 28’, 211.61, 23003100.0),
(’AAPL’, ’2009 - 12 - 29’, 209.10, 15868400.0),
(’AAPL’, ’2009 - 12 - 30’, 211.64, 14696800.0),
(’AAPL’, ’2009 - 12 - 31’, 210.73, 12571000.0)],

dtype=[(’item’, ’| S4’), (’date’, ’| S10’),

(’price’, ’< f8’), (’volume’, ’< f8’)])

>>> data[’price’]

array([622.87, 619.4, 622.73, 619.98, 211.61, 209.1,

211.64, 210.73])

Las matrices estructuradas (o de registro) NumPy como esta pueden ser
efectivas en muchas aplicaciones, pero en nuestra experiencia no propor-
cionan el mismo nivel de flexibilidad y facilidad de uso que otros entornos
estadísticos. Un problema importante es que no se integran bien con el res-
to de NumPy, que está diseñado principalmente para trabajar con matrices
de tipo homogéneo.

R proporciona la clase data.frame que almacena datos de tipos mixtos co-
mo una colección de columnas independientes. El lenguaje R central y sus
bibliotecas de terceros se crearon teniendo en cuenta el objeto data.frame,
por lo que la mayoría de las operaciones en un conjunto de datos de este
tipo son muy naturales. Un data.frame también es flexible en tamaño, una
característica importante al ensamblar una colección de datos. El siguiente

4

fragmento de código carga los datos almacenados en los datos del archivo
CSV en la variable df y agrega una nueva columna de valores booleanos:

> df <- read.csv(’data’)

item

date price

volume
1 GOOG 2009-12-28 622.87 1697900
2 GOOG 2009-12-29 619.40 1424800
3 GOOG 2009-12-30 622.73 1465600
4 GOOG 2009-12-31 619.98 1219800
5 AAPL 2009-12-28 211.61 23003100
6 AAPL 2009-12-29 209.10 15868400
7 AAPL 2009-12-30 211.64 14696800
8 AAPL 2009-12-31 210.73 12571000

> df$ind <- df$item == "GOOG"

> df

item

date price volume

ind
1 GOOG 2009-12-28 622.87 1697900 TRUE
2 GOOG 2009-12-29 619.40 1424800 TRUE
3 GOOG 2009-12-30 622.73 1465600 TRUE
4 GOOG 2009-12-31 619.98 1219800 TRUE
5 AAPL 2009-12-28 211.61 23003100 FALSE
6 AAPL 2009-12-29 209.10 15868400 FALSE
7 AAPL 2009-12-30 211.64 14696800 FALSE
8 AAPL 2009-12-31 210.73 12571000 FALSE

pandas proporciona una clase DataFrame con un nombre similar que im-
plementa gran parte de la funcionalidad de su contraparte R, aunque con
algunas mejoras importantes que discutiremos. Aquí convertimos la matriz
estructurada anterior en un objeto Pandas DataFrame y, de manera simi-
lar, agregamos la misma columna:

5

>>> from pandas import DataFrame

>>> data = DataFrame(data)

>>> data

item

date price

volume
0 GOOG 2009-12-28 622.9 1.698e+06
1 GOOG 2009-12-29 619.4 1.425e+06
2 GOOG 2009-12-30 622.7 1.466e+06
1.22e+06
3 GOOG 2009-12-31 620
4 AAPL 2009-12-28 211.6
2.3e+07
5 AAPL 2009-12-29 209.1 1.587e+07
6 AAPL 2009-12-30 211.6 1.47e+07
7 AAPL 2009-12-31 210.7 1.257e+07

>>> data[’ind’] = data[’item’] == ’GOOG’

>>> data

item

volume

date price

ind
0 GOOG 2009-12-28 622.9 1.698e+06 True
1 GOOG 2009-12-29 619.4 1.425e+06 True
2 GOOG 2009-12-30 622.7 1.466e+06 True
620 1.22e+06 True
3 GOOG 2009-12-31
4 AAPL 2009-12-28 211.6
2.3e+07 False
5 AAPL 2009-12-29 209.1 1.587e+07 False
6 AAPL 2009-12-30 211.6 1.47e+07 False
7 AAPL 2009-12-31 210.7 1.257e+07 False

Estos datos se pueden reformar o "pivotar" en las columnas de fecha y
elemento en una forma diferente para futuros ejemplos mediante el pivote
del método DataFrame:

>>> del data[’ind’] # delete ind column

6

>>> data.pivot(’date’, ’item’)

item

price
AAPL GOOG AAPL

volume

GOOG

date
2009-12-28 211.6 622.9 2.3e+07
1.698e+06
2009-12-29 209.1 619.4 1.587e+07 1.425e+06
2009-12-30 211.6 622.7 1.47e+07 1.466e+06
2009-12-31 210.7 620 1.257e+07

1.22e+06

El resultado de la operación de pivote tiene un índice jerárquico para las
columnas. Como mostraremos en una sección posterior, esta es una forma
poderosa y flexible de representar y manipular datos multidimensionales.
Actualmente, el método de pivote de DataFrame solo admite pivotar en dos
columnas para cambiar la forma de los datos, pero podría aumentarse para
considerar más que solo dos
  • Links de descarga
http://lwp-l.com/pdf17999

Comentarios de: Python - pandas: La biblioteca que marcó un hito en análisis de datos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad