Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

217
Vistas
Cuándo usar multiindexing vs. xarray en pandas

La documentación de las tablas dinámicas de pandas parece recomendar tratar con más de dos dimensiones de datos mediante el uso de indexación múltiple:

 In [1]: import pandas as pd In [2]: import numpy as np In [3]: import pandas.util.testing as tm; tm.N = 3 In [4]: def unpivot(frame): ...: N, K = frame.shape ...: data = {'value' : frame.values.ravel('F'), ...: 'variable' : np.asarray(frame.columns).repeat(N), ...: 'date' : np.tile(np.asarray(frame.index), K)} ...: return pd.DataFrame(data, columns=['date', 'variable', 'value']) ...: In [5]: df = unpivot(tm.makeTimeDataFrame()) In [6]: df Out[6]: date variable value value2 0 2000-01-03 A 0.462461 0.924921 1 2000-01-04 A -0.517911 -1.035823 2 2000-01-05 A 0.831014 1.662027 3 2000-01-03 B -0.492679 -0.985358 4 2000-01-04 B -1.234068 -2.468135 5 2000-01-05 B 1.725218 3.450437 6 2000-01-03 C 0.453859 0.907718 7 2000-01-04 C -0.763706 -1.527412 8 2000-01-05 C 0.839706 1.679413 9 2000-01-03 D -0.048108 -0.096216 10 2000-01-04 D 0.184461 0.368922 11 2000-01-05 D -0.349496 -0.698993 In [7]: df['value2'] = df['value'] * 2 In [8]: df.pivot('date', 'variable') Out[8]: value value2 \ variable ABCDAB date 2000-01-03 -1.558856 -1.144732 -0.234630 -1.252482 -3.117712 -2.289463 2000-01-04 -1.351152 -0.173595 0.470253 -1.181006 -2.702304 -0.347191 2000-01-05 0.151067 -0.402517 -2.625085 1.275430 0.302135 -0.805035 variable CD date 2000-01-03 -0.469259 -2.504964 2000-01-04 0.940506 -2.362012 2000-01-05 -5.250171 2.550861

Pensé que xarray estaba hecho para manejar conjuntos de datos multidimensionales como este:

 In [9]: import xarray as xr In [10]: xr.DataArray(dict([(var, df[df.variable==var].drop('variable', 1)) for var in np.unique(df.variable)])) Out[10]: <xarray.DataArray ()> array({'A': date value value2 0 2000-01-03 0.462461 0.924921 1 2000-01-04 -0.517911 -1.035823 2 2000-01-05 0.831014 1.662027, 'C': date value value2 6 2000-01-03 0.453859 0.907718 7 2000-01-04 -0.763706 -1.527412 8 2000-01-05 0.839706 1.679413, 'B': date value value2 3 2000-01-03 -0.492679 -0.985358 4 2000-01-04 -1.234068 -2.468135 5 2000-01-05 1.725218 3.450437, 'D': date value value2 9 2000-01-03 -0.048108 -0.096216 10 2000-01-04 0.184461 0.368922 11 2000-01-05 -0.349496 -0.698993}, dtype=object)

¿Es uno de estos enfoques mejor que el otro? ¿Por qué xarray no ha reemplazado completamente la multiindexación?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Parece haber una transición a xarray para trabajar en matrices multidimensionales. Pandas despreciará el soporte para la estructura de datos de los paneles 3D y en la documentación incluso sugerirá usar xarray para trabajar con matrices multidimensionales :

'A menudo, uno puede simplemente usar un marco de datos de múltiples índices para trabajar fácilmente con datos de mayor dimensión.

Además, el paquete xarray se creó desde cero, específicamente para admitir el análisis multidimensional que es uno de los principales casos de uso de Panel. Aquí hay un enlace a la documentación de transición del panel xarray.'

A partir de la documentación de xarray , establecen sus objetivos y metas:

xarray tiene como objetivo proporcionar un conjunto de herramientas de análisis de datos tan poderoso como pandas pero diseñado para trabajar con matrices N-dimensionales homogéneas en lugar de datos tabulares...

...Nuestro público objetivo es cualquier persona que necesite arreglos etiquetados N-dimensionales, pero estamos particularmente enfocados en las necesidades de análisis de datos de los científicos físicos, especialmente los geocientíficos que ya conocen y aman netCDF.

La principal ventaja de xarray sobre el uso de números directos es que utiliza etiquetas de la misma manera que pandas en múltiples dimensiones. Si está trabajando con datos tridimensionales, la indexación múltiple o la matriz X pueden ser intercambiables. A medida que crece el número de dimensiones en su conjunto de datos, xarray se vuelve mucho más manejable. No puedo comentar cómo se desempeña cada uno en términos de eficiencia o velocidad.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda