Pandas (III)

Antes de nada, el contexto, para esta serie de entradas se va a usar lo siguiente:

Y sin más preámbulos seguimos con esta tercera parte de la serie.

Trabajando con datos, indexación, selección,…
¿Cómo podemos seleccionar, añadir, eliminar, mover,…, columnas, filas,…?

Para seleccionar una columna solo hemos de usar el nombre de la columna y pasarlo como si fuera un diccionario (o un atributo).

Para añadir una columna simplemente hemos de usar un nombre de columna no existente y pasarle los valores para esa columna.

Para eliminar una columna podemos usar del o el método pop del DataFrame.

Para mover una columna podemos usar una combinación de las metodologías anteriores.

Por ejemplo, vemos a seleccionar los valores de una columna:

Hemos creado un DataFrame y para acceder a la columna velocidad lo podemos hacer de dos formas. O bien usando el nombre de la columna como si fuera una clave de un diccionario o bien usando el nombre de la columna como si fuera un atributo. En el caso de que los nombres de las columnas sean números, la segunda opción no podríais usarla…

Vamos a añadir una columna nueva al DataFrame. Es algo tan sencillo como usar un nombre de columna no existente y pasarle los datos:

Y el resultado sería:

Pero qué pasa si quiero añadir la columna en un lugar específico. Para ello podemos usar el método insert (y de paso vemos como podemos borrar una columna):

El resultado del DataFrame paso a paso sería:

 Una forma alternativa sería usando el método pop:

Cuyo resultado, paso a paso sería:

Para seleccionar datos concretos de un DataFrame podemos usar el índice, una rebanada, valores booleanos, la columna,…

 En lo anterior he estado usando los métodos .ix(), .xs() para obtener partes del DataFrame. Son herramientas muy flexibles que nos permiten acceder a los datos de forma muy personalizada. Otras opciones sería usar los métodos .loc(), .iloc(), .select(). Es importante tener en cuenta que las series devueltas cuando se indexa un DataFrame son solo vistas y no una copia de los propios datos. Por tanto, debes ser precavido cuando manipulas los datos (al igual que sucede con los numpy arrays y otros tipos de datos). Lo siguiente (hecho con numpy arrays) es equivalente para las estructuras de datos de Pandas.

Para acceder a los valores de los índices podemos usar .index.

Para acceder a los valores de las columnas podemos usar .columns.

 Otra vez hemos llegado al final. ¡¡Estad atentos a la próxima entrega!!

8 pensamientos sobre “Pandas (III)”

  1. Muchisimas Gracias por tus tutoriales, son muy didácticos.
    Te quería hacer una consulta: Necesito hacer una busqueda en una columna de un dataFrame pero es una búsqueda tipo excel, es decir, necesito que la búsqueda arroje todas las filas cuyos datos de la columna ‘a’ contengan ‘elec’ siendo los datos de la columna a, por ejemplo: electricidad, agua, electrico…

      1. Genial!!!. Muchas gracias por tu solución, estoy empezando y no conocía la función apply que junto con lambda me parece muy potente.
        Te agradezco enormemente tus tutoriales, para mi son imprescindibles.

      2. Buenas tardes! Muchísimas felicidades por tus tutoriales! Tengo una duda parecida a la que tuvo Paola (en mi caso busco la palabra exacta) pero al ejecutar tu solución me devuelve “TypeError: argument of type ‘float’ is not iterable”. ¿Se te ocurre cual puede ser el problema?
        Muchas gracias!

      3. Sin más datos es difícil saber lo que está pasando. Parece que tu columna no es una columna, sino un solo valor ‘float’ y no se puede iterar sobre el mismo y, por tanto, usar ‘apply’´…

  2. Sonia Arroyo Esteban

    Hola!
    Me gustaría saber como puedo en python transformar n columnas que indican n ciudades donde se indica numero de veces que cada usuario ha visitado, en 1 columna que sea ciudad y numero de veces.
    Mil gracias por la ayuda

Responder a Kiko Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

thirty seven − = 29