Python para análisis de datos - Wes McKinney - E-Book

Python para análisis de datos E-Book

Wes McKinney

0,0
24,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Obtén el manual definitivo para manipular, procesar, limpiar y restringir conjuntos de datos en Python. Actualizado para Python 3.10 y pandas 1.4.0, esta tercera edición de Python para análisis de datos. Manipulación de datos con pandas, NyumPy y Jupyter está llena de casos prácticos, que permiten averiguar cómo resolver una amplia variedad de problemas de datos de una manera efectiva. Con su ayuda conocerás y aprenderás las versiones más recientes de pandas, NumPy, IPython y Jupyter. Escrito por Wes McKinney, el creador del proyecto pandas, Python para análisis de datos es una introducción práctica y moderna a las herramientas de ciencia de datos que ofrece Python. Es ideal para analistas no versados en Python y para programadores que deseen ponerse al día en ciencia de datos y computación científica o ciencia computacional. GitHub alberga los archivos de datos empleados en el libro y otro material asociado. Entre otras cosas, este libro permite: * Utilizar Jupyter Notebook y el shell de IPython para explorar datos. * Aprender funciones de NumPy básicas y avanzadas. * Iniciarse en el manejo de las herramientas de análisis de datos de la librería pandas. * Emplear herramientas flexibles para limpiar, transformar, combinar y remodelar datos. * Crear visualizaciones informativas con matplotlib. * Aplicar la función GroupBy de pandas para segmentar, desmenuzar y resumir conjuntos de datos. * Analizar y manipular series de datos temporales regulares e irregulares. * Aprender cómo resolver problemas reales de análisis de datos con ejemplos específicos y detallados.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 701

Veröffentlichungsjahr: 2023

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Wes McKinney

Python

para análisis de datos

Manipulación de datos ocn padas, NumPy y Jupyter

Sobre el autor

Wes McKinney es desarrollador de software y empresario en Nashville, Tennessee. Tras obtener su título universitario en matemáticas en el Massachussets Institute of Technology (MIT) en 2007, empezó a trabajar en finanzas y economía cuantitativa en la compañía AQR Capital Management en Greenwich, Connecticut. Frustrado por las incómodas herramientas de análisis de datos que existían en ese momento, aprendió Python e inició lo que más tarde se convertiría en el proyecto pandas. Es un miembro activo de la comunidad de datos de Python y es defensor del uso de Python en análisis de datos, finanzas y aplicaciones de computación científica.

Posteriormente, Wes fue cofundador y director ejecutivo de DataPad, cuyas instalaciones tecnológicas y personal fueron adquiridos por Cloudera en 2014. Desde entonces ha estado muy implicado en la tecnología Big Data y se ha unido a los comités de administración de los proyectos Apache Arrow y Apache Parquet en la Apache Software Foundation (ASF). En 2018 fundó Usra Labs, una organización sin ánimo de lucro centrada en el desarrollo de Apache Arrow, en asociación con RStudio y Two Sigma Investments. En 2021 ha creado la startup tecnológica Voltron Data, donde trabaja en la actualidad como director de tecnología.

Sobre la imagen de cubierta

El animal de la portada de este libro es una tupaya o musaraña arborícola de cola plumosa (Ptilocercus lowii). Este pequeño mamífero es el único de su especie del género Ptilocercus y de la familia Ptiocercidae; las otras tres musarañas arborícolas que existen son de la familia Tupaiidae. Las tupayas se identifican por sus largas colas y su suave pelo marrón rojizo. Según indica su apodo, la tupaya de cola plumosa tiene una cola que parece una pluma de escribir. Las musarañas de esta clase son omnívoras, se alimentan principalmente de insectos, fruta, semillas y pequeños vertebrados.

Se encuentra principalmente en Indonesia, Malasia y Tailandia, y es conocida por su consumo crónico de alcohol. Se ha descubierto que las musarañas arborícolas de Malasia se pasan varias horas consumiendo el néctar fermentado de forma natural de la palmera de Bertam, lo que equivaldría a unos 10 o 12 vasos de vino con un contenido de alcohol del 3,8 %. A pesar de ello, nunca ninguna tupaya se ha intoxicado, gracias en parte a su impresionante habilidad para descomponer el etanol, que incluye metabolizar el alcohol de una forma no utilizada por los humanos. ¿Algo más impresionante aún que cualquiera de sus colegas mamíferos, incluidos los humanos? La relación entre la masa cerebral y la masa corporal.

A pesar del nombre de estos mamíferos, la tupaya de cola plumosa no es una verdadera musaraña, sino que realmente está más emparentada con los primates. Debido a esta estrecha relación, las musarañas arborícolas se han convertido en una alternativa a los primates en experimentos médicos sobre la miopía, el estrés psicosocial y la hepatitis.

La imagen de la portada procede de la obra Cassell’s Natural History.

Agradecimientos

Esta obra es producto de muchos años de fructíferas discusiones, colaboraciones y ayuda de muchas personas de todo el mundo. Me gustaría dar las gracias a algunos de ellos.

En memoria de John D. Hunter (1968-2012)

Nuestro estimado amigo y compañero John D. Hunter falleció tras una batalla contra el cáncer de colon el 28 de agosto de 2012, poco después de que yo terminara el manuscrito final para la primera edición de este libro.

Todo lo que se diga acerca del impacto y legado de John en las comunidades científicas y de datos de Python se queda corto. Además de desarrollar matplotlib a principios de los años 2000 (un momento en el que Python apenas era conocido), contribuyó a moldear la cultura de una generación crítica de desarrolladores de código abierto que se habían convertido en pilares del ecosistema Python que ahora solemos dar por sentado.

Fui lo bastante afortunado como para conectar con John a comienzos de mi carrera con el código abierto en enero de 2010, justo después del lanzamiento de pandas 1.0. Su inspiración y orientación me permitieron mantener firme, incluso en los momentos más oscuros, mi visión de pandas y Python como lenguaje de análisis de primera categoría.

John estaba muy unido a Fernando Pérez y Brian Granger, pioneros de IPython, Jupyter y muchas otras iniciativas de la comunidad Python. Teníamos la esperanza de trabajar los cuatro juntos en un libro, pero yo terminé siendo el que tenía más tiempo libre. Estoy seguro de que se habría sentido orgulloso de lo que hemos logrado, como individuos y como comunidad, en los últimos nueve años.

Agradecimientos por la tercera edición (2022)

Ha pasado más una década desde que empecé a escribir la primera edición de este libro y más de quince años desde que inicié mi viaje como programador de Python. Desde entonces han cambiado muchas cosas. Python ha pasado de ser un lenguaje para análisis de datos relativamente especializado a convertirse en el lenguaje más conocido y utilizado, impulsando así buena parte (¡si no la mayoría!) del trabajo de ciencia de datos, aprendizaje automático e inteligencia artificial.

No he contribuido de forma activa al proyecto pandas de código abierto desde 2013, pero su comunidad internacional de desarrolladores ha seguido progresando y se ha convertido en un modelo de desarrollo de software de código abierto basado en la comunidad. Muchos proyectos Python de «próxima generación» que manejan datos tabulares están creando sus interfaces de usuarios basándose directamente en pandas, de modo que el proyecto ha demostrado tener una influencia perdurable en la futura trayectoria del ecosistema de ciencia de datos de Python.

Espero que este libro siga sirviendo como valioso recurso para estudiantes y para cualquier persona que quiera aprender a trabajar con datos en Python.

Tengo que dar especialmente las gracias a O’Reilly Media por permitirme publicar una versión «de acceso abierto» de este libro en mi sitio web en https://wesmckinney.com/book, donde espero que llegue aún a más gente y permita ampliar las oportunidades en el mundo del análisis de datos. J.J. Allaire hizo esto posible siendo mi salvavidas al ayudarme a «transportar» el libro de docbook XML a Quarto (https://quarto.org), un fabuloso sistema nuevo de edición científica y técnica para impresión y web.

También quiero dar las gracias a mis revisores técnicos Paul Barry, Jean-Christophe Leyder, Abdullah Karasan y William Jamir, cuyos detallados comentarios han mejorado enormemente la legibilidad, claridad y comprensión del contenido.

Agradecimientos por la segunda edición (2017)

Han pasado casi cinco años desde el día en que terminé el manuscrito para la primera edición de este libro en julio de 2012. En todo este tiempo se han producido muchos cambios. La comunidad Python ha crecido inmensamente, y el ecosistema del software de código abierto que existe a su alrededor se ha fortalecido.

Esta nueva edición del libro no existiría si no fuera por los incansables esfuerzos de los principales desarrolladores de pandas, que han hecho crecer el proyecto y su comunidad de usuarios para convertirlo en uno de los ejes fundamentales del ecosistema de ciencia de datos Python. Entre ellos se incluyen, entre otros, Tom Augspurser, Joris van den Bossche, Chris Bartak, Phillip Cloud, gfyoung, Andy Hayden, Masaaki Horikoshi, Stephan Hoyer, Adam Klein, Wouter Overmeire, Jeff Reback, Chang She, Skipper Seabold, Jeff Tratner e y-p.

En lo referente a la redacción como tal de esta segunda edición, quisiera agradecer al personal de O’Reilly por su paciente ayuda en este proceso. Incluyo a Marie Beaugureau, Ben Lorica y Colleen Toporek. De nuevo disfruté de la ayuda de fabulosos revisores técnicos como Tom Augspurser, Paul Barry, Hugh Brown, Jonathan Coe y Andreas Müller. Muchas gracias.

La primera edición de este libro ha sido traducida a muchos idiomas, incluyendo chino, francés, alemán, japonés, coreano y ruso. Traducir todo este contenido y ponerlo a disposición de una audiencia más amplia es un esfuerzo enorme y con frecuencia no agradecido. Gracias por ayudar a que más personas del mundo aprendan a programar y utilizar herramientas de análisis de datos.

También tengo la suerte de haber recibido apoyo en los últimos años por parte de Cloudera y Two Sigma Investments en mis continuos esfuerzos de desarrollo de código abierto. Teniendo proyectos de software de código abierto con más recursos que nunca en lo que al tamaño de las bases de usuarios se refiere, cada vez está siendo más importante para las empresas ofrecer soporte para el desarrollo de proyectos clave de código abierto. Eso es lo correcto.

Agradecimientos por la primera edición (2012)

Me habría resultado difícil escribir este libro sin el apoyo de un gran grupo de personas.

Del personal de O’Reilly, me siento muy agradecido a mis editores, Meghan Blanchette y Julie Steele, quienes me guiaron en todo el proceso. Mike Loukides trabajó también conmigo en las etapas de la propuesta y ayudó a que el libro se hiciera realidad.

Recibí muchísimas revisiones técnicas de un gran elenco de personajes. En especial, la ayuda de Martin Blais y Hugh Brown resultó increíblemente provechosa para mejorar los ejemplos del libro y su claridad y organización desde la portada hasta la última página. James Long, Drew Conway, Fernando Pérez, Brian Granger, Thomas Kluyver, Adam Klein, Josh Klein, Chang She y Stéfan van der Walt revisaron todos ellos uno o varios capítulos, ofreciendo comentarios acertados desde muchas perspectivas distintas.

Conseguí muchas buenas ideas para los ejemplos y los conjuntos de datos de amigos y compañeros de la comunidad de datos, entre ellos: Mike Dewar, Jeff Hammerbacher, James Johndrow, Kristian Lum, Adam Klein, Hilary Mason, Chang She y Ashley Williams.

Por supuesto, estoy absolutamente en deuda con los líderes de la comunidad científica Python de código abierto que han puesto las bases para mi trabajo de desarrollo y me dieron ánimos mientras escribía este libro: el equipo principal de IPython (Fernando Pérez, Brian Granger, Min Ragan-Kelly, Thomas Kluyver, y otros), John Hunter, Skipper Seabold, Travis Oliphant, Peter Wang, Eric Jones, Robert Kern, Josef Perktold, Francesc Alted, Chris Fonnesbeck y otros tantos que no tengo aquí espacio para mencionar. Otras personas ofrecieron también mucho apoyo, buenas ideas y ánimo en todo el recorrido: Drew Conway, Sean Taylor, Giuseppe Paleologo, Jared Lander, David Epstein, John Krowas, Joshua Bloom, Den Pilsworth, John Myles-White y muchos otros que he olvidado.

También quisiera dar las gracias a una serie de personas a las que conocí en mis años de formación. En primer lugar, mis primeros compañeros de AQR que me dieron ánimos en mi trabajo con pandas a lo largo de los años: Alex Reyfman, Michael Wong, Tim Sargen, Oktay Kurbanov, Matthew Tschantz, Roni Israelov, Michael Katz, Ari Levine, Chris Uga, Prasad Ramanan, Ted Square y Hoon Kim. Por último, gracias a mis consejeros académicos Haynes Miller (MIT) y Mike West (Duke).

Recibí un importante apoyo de Phillip Cloud y Joris van der Bossche en 2014 para actualizar los ejemplos de código del libro y resolver algunas imprecisiones debido a modificaciones sufridas por pandas.

En lo que se refiere a lo personal, Casey me ofreció un apoyo diario inestimable durante el proceso de redacción, tolerando mis altibajos mientras elaboraba el borrador final con una agenda de trabajo ya de por sí sobrecargada. Finalmente, mis padres, Bill y Kim, me enseñaron a seguir siempre mis sueños y nunca conformarme con menos.

Contenido

Sobre el autor

Sobre la imagen de cubierta

Agradecimientos

En memoria de John D. Hunter (1968-2012)

Agradecimientos por la tercera edición (2022)

Agradecimientos por la segunda edición (2017)

Agradecimientos por la primera edición (2012)

Prefacio

Convenciones empleadas en este libro

Uso del código de ejemplo

Capítulo 1. Preliminares

1.1 ¿De qué trata este libro?

¿Qué tipos de datos?

1.2 ¿Por qué Python para análisis de datos?

Python como elemento de unión

Resolver el problema de «los dos lenguajes»

¿Por qué no Python?

1.3 Librerías esenciales de Python

NumPy

pandas

matplotlib

IPython y Jupyter

SciPy

scikit-learn

statsmodels

Otros paquetes

1.4 Instalación y configuración

Miniconda en Windows

GNU/Linux

Miniconda en macOS

Instalar los paquetes necesarios

Entornos de desarrollo integrados y editores de texto

1.5 Comunidad y conferencias

1.6 Navegar por este libro

Códigos de ejemplo

Datos para los ejemplos

Convenios de importación

Capítulo 2. Fundamentos del lenguaje Python, IPython y Jupyter Notebooks

2.1 El intérprete de Python

2.2 Fundamentos de IPython

Ejecutar el shell de IPython

Ejecutar el notebook de Jupyter

Autocompletado

Introspección

2.3 Fundamentos del lenguaje Python

Semántica del lenguaje

Tipos escalares

Control de flujo

2.4 Conclusión

Capítulo 3. Estructuras de datos integrados, funciones y archivos

3.1 Estructuras de datos y secuencias

Tupla

Listas

Diccionario

Conjunto o set

Funciones de secuencia integradas

Comprensiones de lista, conjunto y diccionario

3.2 Funciones

Espacios de nombres, ámbito y funciones locales

Devolver varios valores

Las funciones son objetos

Funciones anónimas (lambda)

Generadores

Errores y manejo de excepciones

3.3 Archivos y el sistema operativo

Bytes y Unicode con archivos

3.4 Conclusión

Capítulo 4. Fundamentos de NumPy: arrays y computación vectorizada

4.1 El ndarray de NumPy: un objeto array multidimensional

Creando ndarrays

Tipos de datos para ndarrays

Aritmética con arrays NumPy

Indexado y corte básicos

Indexado booleano

Indexado sofisticado

Transponer arrays e intercambiar ejes

4.2 Generación de números pseudoaleatoria

4.3 Funciones universales: funciones rápidas de array elemento a elemento

4.4 Programación orientada a arrays con arrays

Expresar lógica condicional como operaciones de arrays

Métodos matemáticos y estadísticos

Métodos para arrays booleanos

Ordenación

Unique y otra lógica de conjuntos

4.5 Entrada y salida de archivos con arrays

4.6 Álgebra lineal

4.7 Ejemplo: caminos aleatorios

Simulando muchos caminos aleatorios al mismo tiempo

4.8 Conclusión

Capítulo 5. Empezar a trabajar con pandas

5.1 Introducción a las estructuras de datos de pandas

Series

DataFrame

Objetos índice

5.2 Funcionalidad esencial

Reindexación

Eliminar entradas de un eje

Indexación, selección y filtrado

Aritmética y alineación de datos

Aplicación y asignación de funciones

Ordenación y asignación de rangos

Índices de ejes con etiquetas duplicadas

5.3 Resumir y calcular estadísticas descriptivas

Correlación y covarianza

Valores únicos, recuentos de valores y pertenencia

5.4 Conclusión

Capítulo 6. Carga de datos, almacenamiento y formatos de archivo

6.1 Lectura y escritura de datos en formato de texto

Leer archivos de texto por partes

Escribir datos en formato de texto

Trabajar con otros formatos delimitados

Datos JSON

XML y HTML: raspado web

6.2 Formatos de datos binarios

Leer archivos de Microsoft Excel

Utilizar el formato HDF5

6.3 Interactuar con API web

6.4 Interactuar con bases de datos

6.5 Conclusión

Capítulo 7. Limpieza y preparación de los datos

7.1 Gestión de los datos que faltan

Filtrado de datos que faltan

Rellenado de datos ausentes

7.2 Transformación de datos

Eliminación de duplicados

Transformación de datos mediante una función o una asignación

Reemplazar valores

Renombrar índices de eje

Discretización

Detección y filtrado de valores atípicos

Permutación y muestreo aleatorio

Calcular variables dummy o indicadoras

7.3 Tipos de datos de extensión

7.4 Manipulación de cadenas de texto

Métodos de objeto de cadena de texto internos de Python

Expresiones regulares

Funciones de cadena de texto en pandas

7.5 Datos categóricos

Antecedentes y motivación

Tipo de extensión Categorical en pandas

Cálculos con variables categóricas

Métodos categóricos

7.6 Conclusión

Capítulo 8. Disputa de datos: unión, combinación y remodelación

8.1 Indexación jerárquica

Reordenación y clasificación de niveles

Estadísticas de resumen por nivel

Indexación con las columnas de un dataframe

8.2 Combinación y fusión de conjuntos de datos

Uniones de dataframes al estilo de una base de datos

Fusión según el índice

Concatenación a lo largo de un eje

Combinar datos con superposición

8.3 Remodelación y transposición

Remodelación con indexación jerárquica

Transponer del formato «largo» al «ancho»

Transponer del formato «ancho» al «largo»

8.4 Conclusión

Capítulo 9. Gráficos y visualización

9.1 Una breve introducción a la API matplotlib

Figuras y subgráficos

Colores, marcadores y estilos de línea

Marcas, etiquetas y leyendas

Anotaciones y dibujos en un subgráfico

Almacenamiento de gráficos en archivo

Configuración de matplotlib

9.2 Realización de gráficos con pandas y seaborn

Gráficos de líneas

Gráficos de barras

Histogramas y gráficos de densidad

Gráficos de dispersión o de puntos

Cuadrícula de facetas y datos categóricos

9.3. Otras herramientas de visualización de Python

9.4 Conclusión

Capítulo 10. Agregación de datos y operaciones con grupos

10.1 Entender las operaciones de grupos

Iteración a través de grupos

Selección de una columna o subconjunto de columnas

Agrupamiento con diccionarios y series

Agrupamiento con funciones

Agrupamiento por niveles de índice

10.2 Agregación de datos

Aplicación de varias funciones a columnas

Devolución de datos agregados sin índices de fila

10.3 El método apply: un split-apply-combine general

Supresión de las claves de grupos

Análisis de cuantil y contenedor

Ejemplo: Rellenar valores faltantes con valores específicos de grupo

Ejemplo: Muestreo aleatorio y permutación

Ejemplo: media ponderada de grupo y correlación

Ejemplo: Regresión lineal por grupos

10.4 Transformaciones de grupos y funciones GroupBy «simplificadas»

10.5 Tablas dinámicas y tabulación cruzada

Tabulaciones cruzadas

10.6 Conclusión

Capítulo 11. Series temporales

11.1 Tipos de datos de fecha y hora y herramientas asociadas

Conversión entre cadena de texto y datetime

11.2 Fundamentos de las series temporales

Indexación, selección y creación de subconjuntos

Series temporales con índices duplicados

11.3 Rangos de fechas, frecuencias y desplazamiento

Generación de rangos de fechas

Frecuencias y desfases de fechas

Desplazamiento de los datos (adelantar y retrasar)

11.4 Manipulación de zonas horarias

Localización y conversión de zonas horarias

Operaciones con objetos de marca temporal conscientes de la zona horaria

Operaciones entre distintas zonas horarias

11.5 Periodos y aritmética de periodos

Conversión de frecuencias de periodos

Frecuencias de periodos trimestrales

Conversión de marcas temporales a periodos (y viceversa)

Creación de un objeto PeriodIndex a partir de arrays

11.6 Remuestreo y conversión de frecuencias

Submuestreo

Sobremuestreo e interpolación

Remuestreo con periodos

Remuestreo de tiempo agrupado

11.7 Funciones de ventana móvil

Funciones ponderadas exponencialmente

Funciones binarias de ventana móvil

Funciones de ventana móvil definidas por el usuario

11.8 Conclusión

Capítulo 12. Introducción a las librerías de creación de modelos de Python

12.1 Interconexión entre pandas y el código para la creación de modelos

12.2 Creación de descripciones de modelos con Patsy

Transformaciones de datos en fórmulas Patsy

Datos categóricos y Patsy

12.3 Introducción a statsmodels

Estimación de modelos lineales

Estimación de procesos de series temporales

12.4 Introducción a scikit-learn

12.5 Conclusión

Capítulo 13. Ejemplos de análisis de datos

13.1 Datos Bitly de 1.USA.gov

Recuento de zonas horarias en Python puro

Recuento de zonas horarias con pandas

13.2 Conjunto de datos MovieLens 1M

Medición del desacuerdo en las valoraciones

13.3 Nombres de bebés de Estados Unidos entre 1880 y 2010

Análisis de tendencias en los nombres

13.4 Base de datos de alimentos del USDA

13.5 Base de datos de la Comisión de Elecciones Federales de 2012

Estadísticas de donación por ocupación y empleador

Incluir donaciones en contenedores

Estadísticas de donación por estado

13.6 Conclusión

Apéndice A. NumPy avanzado

A.1 Análisis del objeto ndarray

Jerarquía del tipo de datos NumPy

A.2 Manipulación de arrays avanzada

Remodelado de arrays

Orden de C frente a FORTRAN

Concatenación y división de arrays

Repetición de elementos: tile y repeat

Equivalentes del indexado sofisticado: take y put

A.3 Difusión

Difusión a lo largo de otros ejes

Configuración de valores de array por difusión

A.4 Uso avanzado de ufuncs

Métodos de instancia ufunc

Escribir nuevas ufuncs en Python

A.5 Arrays estructurados y de registros

Tipos de datos anidados y campos multidimensionales

¿Por qué emplear arrays estructurados?

A.6 Más sobre la ordenación

Ordenaciones indirectas: argsort y lexsort

Algoritmos de ordenación alternativos

Ordenación parcial de arrays

Localización de elementos en un array ordenado con numpy.searchsorted

A.7 Escritura de funciones rápidas NumPy con Numba

Creación de objetos personalizados numpy.ufunc con Numba

A.8 Entrada y salida de arrays avanzadas

Archivos mapeados en memoria

HDF5 y otras opciones de almacenamiento de arrays

A.9 Consejos de rendimiento

La importancia de la memoria contigua

Apéndice B. Más sobre el sistema IPython

B.1 Atajos de teclado del terminal

B.2 Los comandos mágicos

El comando %run

Ejecutar código desde el portapapeles

B.3 Cómo utilizar el historial de comandos

Búsqueda y reutilización del historial de comandos

Variables de entrada y salida

B.4 Interacción con el sistema operativo

Comandos de shell y alias

Sistema de marcado a directorios

B.5 Herramientas de desarrollo de software

Depurador interactivo

Medir el tiempo de ejecución del código: %time y %timeit

Perfilado básico: %prun y %run –p

Perfilar una función línea a línea

B.6 Consejos para un desarrollo de código productivo con IPython

Recargar dependencias de módulo

Consejos de diseño de código

B.7 Funciones avanzadas de IPython

Perfiles y configuración

B.8 Conclusión

Créditos

Prefacio

La primera edición de este libro se publicó en 2012, en una época en la que las librerías de análisis de datos de fuente abierta de Python, especialmente pandas, eran nuevas y se estaban desarrollando a gran velocidad. Cuando llegó el momento de escribir la segunda edición en 2016 y 2017, necesité actualizar el libro no solo para Python 3.6 (la primera edición empleaba Python 2.7), sino también para los abundantes cambios producidos en pandas en los cinco años anteriores. Ahora, en 2022, hay menos cambios en el lenguaje Python (estamos ya en Python 3.10, con la versión 3.11 a punto de llegar a finales de 2022), pero pandas ha seguido evolucionando.

En esta tercera edición, mi objetivo es actualizar el contenido con las versiones actuales de Python, NumPy, pandas y otros proyectos, manteniéndome al mismo tiempo relativamente conservador en lo relativo a los proyectos Python más recientes surgidos en los últimos años. Como este libro se ha convertido en un recurso de gran importancia para muchos cursos universitarios y profesionales del sector, trataré de evitar temas que puedan quedar obsoletos en un año o dos. De esa forma, las copias en papel no resultarán demasiado difíciles de seguir en 2023, 2024 o más allá.

Una nueva característica de la tercera edición es la versión en línea de acceso abierto alojada en mi sitio web en https://wesmckinney.com/book, que sirve como recurso y resulta cómodo para poseedores de las ediciones impresa y digital. Trato de mantener ahí el contenido razonablemente actualizado, de modo que si dispone de una copia en papel y se encuentra con algo que no funciona correctamente, recomiendo revisar en mi web los últimos cambios en el contenido.

Convenciones empleadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

•Cursiva: Es un tipo que se usa para diferenciar términos anglosajones o de uso poco común. También se usa para destacar algún concepto.

•Negrita: Le ayudará a localizar rápidamente elementos como las combinaciones de teclas.

•Fuenteespecial: Nombres de botones y opciones de programas. Por ejemplo, Aceptar para hacer referencia a un botón con ese título.

•Monoespacial: Utilizado para el código y dentro de los párrafos para hacer referencia a elementos como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, declaraciones y palabras clave.

•También encontrará a lo largo del libro recuadros con elementos destacados sobre el texto normal, para comunicarle de manera breve y rápida algún concepto relacionado con lo que está leyendo.

Este elemento representa un truco o una sugerencia.

Este elemento representa una nota.

Este elemento representa una advertencia o precaución.

Uso del código de ejemplo

Se puede descargar material adicional (ejemplos de código, ejercicios, etc.) de la página web de Anaya Multimedia (http://www.anayamultimedia.es). Vaya al botón SeleccionaComplemento de la ficha del libro, donde podrá descargar el contenido para utilizarlo directamente. También puede descargar el material de la página web original del libro (https://github.com/wesm/pydata-book), que está duplicado en Gitee (para quienes no puedan acceder a GitHub) en https://gitee.com/wesmckinn/pydata-book.

Este libro ha sido creado para ayudarle en su trabajo. En general, puede utilizar el código de ejemplo ofrecido en este libro en sus programas y en su documentación. No es necesario contactar con nosotros para solicitar permiso, a menos que esté reproduciendo una gran cantidad del código. Por ejemplo, escribir un programa que utilice varios fragmentos de código tomados de este libro no requiere permiso. Sin embargo, vender o distribuir ejemplos de los libros de O’Reilly sí lo requiere. Responder una pregunta citando este libro y empleando textualmente código de ejemplo incluido en él no requiere permiso. Pero incorporar una importante cantidad de código de ejemplo de este libro en la documentación de su producto sí lo requeriría.