Remuestreo de un DataFrame multi-índice

Quiero volver a muestrear un DataFrame con un índice múltiple que contiene una columna de fecha y hora y alguna otra clave. El Dataframe se ve así:

import pandas as pd from StringIO import StringIO csv = StringIO("""ID,NAME,DATE,VAR1 1,a,03-JAN-2013,69 1,a,04-JAN-2013,77 1,a,05-JAN-2013,75 2,b,03-JAN-2013,69 2,b,04-JAN-2013,75 2,b,05-JAN-2013,72""") df = pd.read_csv(csv, index_col=['DATE', 'ID'], parse_dates=['DATE']) df.columns.name = 'Params' 

Debido a que el remuestreo solo se permite en los índices de fecha y hora, pensé que desastackr la otra columna del índice ayudaría. Y de hecho lo hace, pero no puedo astackrlo de nuevo después.

 print df.unstack('ID').resample('W-THU') Params VAR1 ID 1 2 DATE 2013-01-03 69 69.0 2013-01-10 76 73.5 

Pero luego astackr ‘ID’ nuevamente da como resultado un error de índice:

 print df.unstack('ID').resample('W-THU').stack('ID') IndexError: index 0 is out of bounds for axis 0 with size 0 

Por extraño que parezca, puedo astackr el otro nivel de columna con ambos:

 print df.unstack('ID').resample('W-THU').stack(0) 

y

 print df.unstack('ID').resample('W-THU').stack('Params') 

El error de índice también se produce si reordeno (intercambio) ambos niveles de columna. ¿Alguien sabe cómo superar este problema?

El ejemplo desastack una columna no numérica ‘NOMBRE’ que se elimina de forma silenciosa pero causa problemas al volver a astackr. El siguiente código me funcionó

 print df[['VAR1']].unstack('ID').resample('W-THU').stack('ID') Params VAR1 DATE ID 2013-01-03 A 69.0 B 69.0 2013-01-10 A 76.0 B 73.5