Uso de rangos

Siguiendo con esta la notación tipo diccionario, es posible seleccionar rangos de valores. De esta forma, si usamos un rango numérico en una serie en la que hemos definido un índice explícito:

Serie pandas con índice explícitoSelección de datos en una serie pandas usando rangos

...observamos que el rango se interpreta como haciendo referencia al índice implícito, y se incluyen los valores desde el primer índice incluido, hasta el último sin incluir.

Si no se incluye alguno de los límites, el comportamiento es el estándar en Python (si no se incluye el primer valor, se consideran todos los elementos desde el principio, y si no se incluye el último valor, se consideran todos los elementos hasta el final):

Selección de datos en una serie pandas usando rangos

Si se utilizan los índices explícitos en el rango, el comportamiento es ligeramente diferente:

Selección de datos en una serie pandas usando rangos

Vemos cómo se incluyen los valores desde el primer índice hasta el último índice, ambos incluidos.

Aquí también podemos obviar el uso de alguno de los dos límites:

Selección de datos en una serie pandas usando rangos

Una posible fuente de confusión viene derivada del hecho de que, usando rangos, es posible hacer referencia tanto a las etiquetas como a los índices numéricos: si utilizamos etiquetas, hacemos referencia a las etiquetas (por supuesto):

Selección de datos en una serie pandas usando rangos

...y, por tanto, si utilizamos números, hacemos referencia a los índices numéricos (¿por supuesto...?):

Selección de datos en una serie pandas usando rangos

¿Y qué ocurre si nuestras etiquetas son números? Pues que siempre que usemos rangos con números estaremos haciendo referencia a los índices numéricos: no es posible hacer referencia a las etiquetas:

Selección de datos en una serie pandas usando rangos

Sin embargo, algo como

s[1]

devolverá el valor cuya etiqueta es 1 (si existe):

Selección de datos en una serie pandas usando rangos

...o el valor cuya posición es 1 si dicha etiqueta no existe y el índice explícito no es numérico:

Selección de datos en una serie pandas usando rangos

Es debido a esto que existen los métodos loc e iloc que veremos poco más adelante. Dichos métodos hacen una referencia explícita a etiquetas o posiciones, respectivamente, eliminando cualquier duda al respecto de su interpretación.