Marco de datos inverso de pandas

Salman Mehmood 15 febrero 2024
  1. Use el método loc para invertir el marco de datos sin un error en Pandas
  2. La forma incorrecta de revertir el marco de datos de Pandas en Python
  3. Flujo de trabajo de Data Fame en la función reversed()
Marco de datos inverso de pandas

Aprenderemos cómo invertir las filas y columnas y veremos cómo también podemos restablecer el índice. También aprenderemos por qué algunos principiantes fallan cuando intentan revertir marcos de datos en Pandas.

Use el método loc para invertir el marco de datos sin un error en Pandas

Ahora comenzaremos a saltar al código e importaremos la biblioteca y el conjunto de datos pandas, una muestra de datos de una supertienda que proviene de un archivo de Excel ubicado en la misma carpeta. Si revisamos la supertienda de muestra, veremos una gran cantidad de datos con varias columnas.

import pandas as pd

Data = pd.read_excel("demo_Data.xls")
Data.head()

muestra de datos de supermercados

Ahora tomaremos algunas columnas para que nos sea fácil de entender y también para que tenga más sentido. Entonces, antes que nada, seguiremos adelante y seleccionaremos algunas columnas que se consideran para la manipulación de datos.

data = Data[["Category", "Sub-Category", "City", "Country", "Region"]]
data.head()

seleccionar columnas

Nuestra tarea es invertir las filas y columnas, y primero, verificamos nuestro número total de registros y el número total de columnas.

len(data), len(data.columns)

Producción :

(9994, 5)

Es hora de que hagamos los datos inversos, por lo que usaremos el siguiente fragmento de código para invertir el marco de datos.

data.loc[::-1]

Podemos ver que los datos ahora están invertidos usando el método loc.

use loc para invertir datos

Sabemos cómo invertir el marco de datos, pero nuestro índice de marco de datos comienza desde 999, por lo que tenemos que restablecer el índice. Para ello, utilizaremos el método reset_index(), y el argumento drop será True.

data.loc[::-1].reset_index(drop=True)

Ahora, si lo ejecutamos, podemos ver que el índice se restablece y cambia 9993 con 0, el primer registro anterior, y todos los registros son iguales.

índice de reinicio

Si seguimos adelante y cambiamos las columnas en orden descendente, la primera columna debería ser Región, luego País y así sucesivamente. Para hacer esto, usaremos el mismo código anterior pero con un cambio menor.

data.loc[:, ::-1]

Así es como podemos invertir la columna utilizando el método loc y después de la coma, que significa que estamos invirtiendo la columna y antes de la coma, que significa seleccionar todas las filas.

columna inversa

La forma incorrecta de revertir el marco de datos de Pandas en Python

Algunos principiantes invierten los marcos de datos incorrectamente y obtienen un error porque tienen menos conocimiento sobre cómo usar la función invertida() con un marco de datos.

Considere el siguiente código.

data = Data[["Category", "Sub-Category", "City", "Country", "Region"]]

for i in reversed(data):
    print(data["Category"], data["Country"])

Producción:

La forma incorrecta de revertir el marco de datos de Pandas en Python

¿Por qué los principiantes usan el fragmento de código anterior para invertir el marco de datos? Bueno, dado que la función reversed() invierte los tipos de datos que ponemos, intentan invertir los datos de esta manera.

Considere el siguiente código.

data = ["Category", "Sub-Category", "City", "Country", "Region"]

for i in reversed(data):
    print(i)

Podemos ver que el código anterior se invierte perfectamente porque el tipo de datos es una lista y el marco de datos funciona de manera diferente.

Region
Country
City
Sub-Category
Category

Flujo de trabajo de Data Fame en la función reversed()

Detrás de escena, algunas implementaciones ocurren cuando proporcionamos un marco de datos en la función invertida ().

  1. reversed() llama a la función len() y coloca el marco de datos dentro de él para obtener su longitud.
  2. Llame a la función rango() y ponga su longitud.
  3. Inicie la iteración en orden inverso.

Usando la función reversed(), el control obtiene primero la longitud del marco de datos, luego lo coloca dentro de la función range() y comienza a iterar en orden inverso.

Después de eso, el control obtiene el primer elemento y se encierra entre corchetes como datos[9993]; aquí es donde obtenemos el error.

Y 9993 no existe en el marco de datos porque 9993 es un índice, no un nombre de columna. Puede utilizar el enfoque correcto mencionado en la sección anterior.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Artículo relacionado - Pandas Dataframe