pandas read_hdf con la limitación de condición ‘donde’?

Necesito consultar un archivo HDF5 con la cláusula where con 3 condiciones, una de las condiciones es una lista con una longitud de 30:

 myList = list(xrange(30)) h5DF = pd.read_hdf(h5Filename, 'df', where='index=myList & date=dateString & time=timeString') 

La consulta anterior me da ValueError: too many inputs y el error es reproducible.

Si reduzco la longitud de la lista a 29 (tres condiciones):

 myList = list(xrange(29)) h5DF = pd.read_hdf(h5Filename, 'df', where='index=myList & date=dateString & time=timeString') 

O número de condiciones a solo dos (lista de longitud de 30):

entonces se ejecuta bien:

 myList = list(xrange(30)) h5DF = pd.read_hdf(h5Filename, 'df', where='index=myList & time=timeString') 

¿Es esta una limitación conocida? La documentación de pandas en http://pandas.pydata.org/pandas-docs/dev/generated/pandas.io.pytables.read_hdf.html no menciona esta limitación y parece que después de buscar en este foro, nadie encuentra esta limitación todavía.

La versión es pandas 0.15.2 . Cualquier ayuda es apreciada.

Esto se responde aquí

Esto es un defecto porque numpy/numexpr no puede manejar más de 31 operandos en el árbol. Una expresión como foo=[1,2,3,4] en el dónde del HDFStore genera una expresión como (foo==1) | (foo==2) .... (foo==1) | (foo==2) .... para que se expandan y si tiene demasiados puede fallar.

HDFStore maneja esto con un solo operando (IOW si solo tienes foo=[range(31)] está bien, pero debido a que tienes una subexpresión anidada en la que los subnodos en sí son demasiado largos, por lo que se producen errores.

Generalmente, una mejor manera de hacer esto es seleccionar un rango más grande (por ejemplo, tal vez los puntos finales de la selección para cada operando), luego hacer un .isin en memoria. Incluso podría ser más rápido, ya que HDF5 tiende a ser IMHO más eficiente cuando selecciona rangos más grandes (aunque está llevando más datos a la memoria), en lugar de selecciones individuales.