stringtranslate.com

pandas (software)

Pandas (estilizado como pandas ) es una biblioteca de software escrita para el lenguaje de programación Python para la manipulación y análisis de datos . En particular, ofrece estructuras de datos y operaciones para manipular tablas numéricas y series de tiempo . Es un software gratuito lanzado bajo la licencia BSD de tres cláusulas . [2] El nombre se deriva del término " pan el da ta ", un término econométrico para conjuntos de datos que incluyen observaciones durante múltiples períodos de tiempo para los mismos individuos, [3] así como un juego de palabras con la frase "análisis de datos de Python". ". [4] : 5  Wes McKinney comenzó a construir lo que se convertiría en Pandas en AQR Capital mientras era investigador allí de 2007 a 2010. [5]

El desarrollo de Pandas introdujo en Python muchas características comparables de trabajo con DataFrames que se establecieron en el lenguaje de programación R. La biblioteca se basa en otra biblioteca, NumPy .

Historia

El desarrollador Wes McKinney comenzó a trabajar en Pandas en 2008 mientras estaba en AQR Capital Management debido a la necesidad de una herramienta flexible y de alto rendimiento para realizar análisis cuantitativos de datos financieros. Antes de dejar AQR, pudo convencer a la gerencia para que le permitiera abrir la biblioteca.

Otro empleado de AQR, Chang She, se unió al esfuerzo en 2012 como el segundo mayor contribuyente a la biblioteca.

En 2015, Pandas se inscribió como un proyecto patrocinado fiscalmente por NumFOCUS, una organización benéfica sin fines de lucro 501(c)(3) en los Estados Unidos. [6]

Modelo de datos

Pandas se basa en estructuras de datos llamadas Series y DataFrames . Los datos de estas colecciones se pueden importar desde varios formatos de archivo, como valores separados por comas , JSON , Parquet , tablas o consultas de bases de datos SQL y Microsoft Excel . [7]

Una serie es una estructura de datos unidimensional construida sobre la matriz de NumPy . [8] : 97  A diferencia de NumPy, cada punto de datos tiene una etiqueta asociada. La colección de estas etiquetas se llama índice. [4] : La serie 112  se puede usar aritméticamente, como en la declaración series_3 = series_1 + series_2: esto alineará los puntos de datos con los valores de índice correspondientes en series_1y series_2, luego los sumará para producir nuevos valores en series_3. [4] : 114  Un DataFrame es una estructura de datos bidimensional de filas y columnas, similar a una hoja de cálculo y análoga a un diccionario de Python que asigna nombres de columnas (claves) a Series (valores), donde cada Serie comparte un índice. [4] : 115  DataFrames se pueden concatenar o "fusionar" en columnas o índices de manera similar a las uniones en SQL . [4] : 177–182  Pandas implementa un subconjunto de álgebra relacional y admite uniones uno a uno, muchos a uno y muchos a muchos. [8] : 147–148  Pandas también admite los menos comunes Panel y Panel4D , que son estructuras de datos de 3 y 4 dimensiones, respectivamente. [8] : 141 

Los usuarios pueden transformar o resumir datos aplicando funciones arbitrarias . [4] : 132  Dado que Pandas está construido sobre NumPy, todas las funciones de NumPy también funcionan en Series y DataFrames. [8] : 115  Pandas también incluye operaciones integradas para aritmética, manipulación de cadenas y estadísticas resumidas como media , mediana y desviación estándar . [4] : 139, 211  Estas funciones integradas están diseñadas para manejar datos faltantes, generalmente representados por el valor de punto flotante NaN . [4] : 142-143 

Los subconjuntos de datos se pueden seleccionar por nombre de columna, índice o expresiones booleanas . Por ejemplo, df[df['col1'] > 5]devolverá todas las filas del DataFrame dfcuyo valor de la columna col1exceda 5. [4] : ​​126–128  Los datos se pueden agrupar por un valor de columna, como en df['col1'].groupby(df['col2']), o por una función que se aplica al índice. . Por ejemplo, df.groupby(lambda i: i % 2)agrupa datos según si el índice es par. [4] : 253–259 

Pandas incluye soporte para series de tiempo , como la capacidad de interpolar valores [4] : ​​316–317  y filtrar usando un rango de marcas de tiempo (por ejemplo, data['1/1/2023':'2/2/2023']devolverá todas las fechas entre el 1 de enero y el 2 de febrero). [4] : 295  Pandas representa datos de series de tiempo faltantes usando un objeto NaT (no una marca de tiempo) especial, en lugar del valor NaN que usa en otros lugares. [4] : 292 

Índices

De forma predeterminada, un índice de Pandas es una serie de números enteros que ascienden desde 0, similar a los índices de las matrices de Python . Sin embargo, los índices pueden utilizar cualquier tipo de datos NumPy, incluidos puntos flotantes, marcas de tiempo o cadenas. [4] : 112 

La sintaxis de Pandas para asignar valores de índice a datos relevantes es la misma sintaxis que usa Python para asignar claves de diccionario a valores. Por ejemplo, si ses una Serie, s['a']devolverá el punto de datos en el índice a. A diferencia de las claves de diccionario, no se garantiza que los valores de índice sean únicos. Si una Serie utiliza el valor de índice apara múltiples puntos de datos, s['a']devolverá una nueva Serie que contiene todos los valores coincidentes. [4] : 136  Los nombres de las columnas de un DataFrame se almacenan e implementan de manera idéntica a un índice. Como tal, se puede considerar que un DataFrame tiene dos índices: uno basado en columnas y otro basado en filas. Dado que los nombres de las columnas se almacenan como un índice, tampoco es necesario que sean únicos. [8] : 103-105 

Si dataes una serie, data['a']devuelve todos los valores con el valor de índice de a. Sin embargo, si dataes un DataFrame, data['a']devuelve todos los valores de las columnas denominadas a. Para evitar esta ambigüedad, Pandas admite la sintaxis data.loc['a']como una forma alternativa de filtrar mediante el índice. Pandas también admite la sintaxis data.iloc[n], que siempre toma un número entero n y devuelve el enésimo valor, contando desde 0. Esto permite al usuario actuar como si el índice fuera una secuencia de números enteros similar a una matriz, independientemente de cómo esté realmente definido. [8] : 110-113 

Pandas admite índices jerárquicos con múltiples valores por punto de datos. Un índice con esta estructura, llamado "MultiIndex", permite que un solo DataFrame represente múltiples dimensiones, similar a una tabla dinámica en Microsoft Excel . [4] : 147–148  A cada nivel de un MultiIndex se le puede dar un nombre único. [8] : 133  En la práctica, los datos con más de 2 dimensiones a menudo se representan utilizando DataFrames con índices jerárquicos, en lugar de las estructuras de datos Panel y Panel4D de mayor dimensión [8] : 128 

Críticas

Pandas ha sido criticado por su ineficiencia. Pandas puede requerir de 5 a 10 veces más memoria que el tamaño de los datos subyacentes, y todo el conjunto de datos debe cargarse en la RAM . La biblioteca no optimiza los planes de consulta ni admite la computación paralela en múltiples núcleos . Wes McKinney, el creador de Pandas, recomendó Apache Arrow como alternativa para abordar estos problemas de rendimiento y otras limitaciones. [9]

Ver también

Referencias

  1. ^ "Lanzamiento de Pandas 2.2.0". 20 de enero de 2024.
  2. ^ "Licencia - Descripción general del paquete - Documentación de pandas 1.0.0". pandas . 28 de enero de 2020 . Consultado el 30 de enero de 2020 .
  3. ^ Wes McKinney (2011). "pandas: una biblioteca fundamental de Python para análisis de datos y estadísticas" (PDF) . Consultado el 2 de agosto de 2018 .
  4. ^ abcdefghijklmnop McKinney, Wes (2014). Python para análisis de datos (Primera ed.). O'Reilly. ISBN 978-1-449-31979-3.
  5. ^ Kopf, Dan. "Conozca al hombre detrás de la herramienta más importante en ciencia de datos". Cuarzo . Consultado el 17 de noviembre de 2020 .
  6. ^ "NumFOCUS - pandas: un proyecto patrocinado fiscalmente". NúmFOCO . Consultado el 3 de abril de 2018 .
  7. ^ "Herramientas IO (texto, CSV, HDF5,…) - documentación de pandas 1.4.1".
  8. ^ abcdefgh VanderPlas, Jake (2016). Manual de ciencia de datos de Python: herramientas esenciales para trabajar con datos (Primera ed.). O'Reilly. ISBN 978-1-491-91205-8.
  9. ^ McKinney, Wes (21 de septiembre de 2017). "Apache Arrow y las" 10 cosas que odio de los pandas"". wesmckinney.com . Consultado el 21 de diciembre de 2023 .

Otras lecturas