Remodelación de pandas

Remodelación de pandas
"Los datos existe en una variedad de tamaños y formas. Con frecuencia requerimos remodelar los datos al tratar con ellos para que se asimile idealmente para la tarea actual. Examinaremos 2 métodos simples para remodelar un marco de datos en este artículo."

Podemos utilizar el "PD.función de pivot () "para remodelar el marco de datos del formato largo existente a uno largo. Se puede producir un nuevo marco de datos utilizando la función de pivote de una existente. El "PD.pivot () ”acepta tres argumentos. Para emplear este método, tenemos que usar la siguiente sintaxis:

El "PD.El método Melt () "se puede utilizar para convertir el DataFrame de formato amplio a largo. Cuando se necesita usar una columna en particular como identificador, esta función podría emplearse. La sintaxis para emplear este método se da aquí:

La implementación práctica de estas dos técnicas se aprenderá en este tutorial con la ayuda de los programas de Python.

Ejemplo 1: utilizando el método pandas pivot () para remodelar el marco de datos de largo a ancho

La primera ilustración implementará el concepto de utilizar los pandas "PD.método pivot () "para remodelar el marco de datos de un formato largo en uno ancho. Vamos a ver cómo funciona.

La herramienta "Spyder" se inicia para compilar el programa Python utilizando su entorno. El código comenzó importando la biblioteca de pandas. Además, hemos convertido a "PD" en el alias para "Pandas".

Para la construcción de un marco de datos, utilizaremos el método pandas "PD.Marco de datos()". Este método crea un marco de datos con valores suministrados. El "PD.El método DataFrame () "se invoca para construir un marco de datos con 3 columnas" Grupo "," Tarea "y" Puntuación ". Las columnas pueden estar almacenando valores con diferentes tipos de datos, pero la longitud de los valores seguirá siendo igual para todas las columnas. La primera columna, "grupo", contiene tipos de cadenas de valores que son "x", "x", "x", "y", "y", "y", "z", "z" y "z" ". La segunda columna, "Tarea", tiene valores enteros; "4", "5", "6", "4", "5", "6", "4", "5" y "6". Para la última columna, "puntaje", hemos especificado valores como "13", "18", "3", "9", "11", "15", "5", "14" y "21".

El "PD.El método DataFrame () "generará un marco de datos con estos valores proporcionados. Para almacenar el contenido de este marco de datos, hemos creado un objeto DataFrame, "competencia". Este objeto mantendrá el marco de datos que se utilizará después. Luego, para verlo, se emplea el método de Python, que es "print ()". El método "print ()" tomará el objeto Dataframe "competencia" como entrada y exhibirá su contenido en la ventana de salida.

Para ejecutar el script, solo tenemos que presionar la opción "Ejecutar archivo" y se mostrará la salida. Aquí obtuvimos un marco de datos con 3 columnas que sostienen 9 filas. Podemos ver que la columna "Grupo" tiene tres valores únicos, que son "X", "Y" y "Z". Y la columna "Tarea" también contiene tres valores distintos "4", "5" y "6".

Por lo tanto, para remodelar este largo marco de datos a uno amplio, emplearemos la función proporcionada por Pandas "PD.pivote()". Invocamos el "PD.método pivot () "y aprobados 4 parámetros que son" df "," índice "," columnas "y" valores ". El "DF" es el nombre del DataFrame que proporcionamos como "Competencia". El "índice" tomará en la columna, que debe usarse como la columna de índice. Aquí especificamos la columna "Grupo" como el "índice". El atributo "columnas" obtiene una columna cuyos datos usará como etiquetas de columna. Proporcionamos la columna "tarea" para el atributo "columnas". Tomará los valores distintos de la "tarea" y los hará columnas. Los "valores" extraerán los valores de la columna proporcionada, i.mi., la columna de "puntuación" y colóquelos en las columnas creadas correspondientes al índice para esos valores. El resultado se presentará llamando a la función "print ()".

Aquí podemos ver que los valores distintos de la columna "Grupo" se establecen como una columna de índice, los valores únicos de la columna "Tarea" se usan como títulos de columna, y los valores se toman de la columna "Puntuación". El marco de datos se comprende en un formato amplio al romperlo de una disposición larga.

Ejemplo 2: utilizando el método Pandas Melt () para remodelar el marco de datos de ancho a largo

La técnica anterior remodeló el marco de datos de largo a ancho; Veremos su opuesto, que está transformando el marco de datos de un formato amplio a uno largo. Esta instancia empleará a los pandas "PD.Función MELT () "para remodelar nuestro marco de datos proporcionado en un formato largo.

Para implementar este método, inicialmente necesitamos construir el DataFrame. Dado que los pandas nos ofrecen un método incorporado "PD.DataFrame () "para generar un DataFrame. Entonces, invocamos esta función y la iniciamos con 5 columnas. Las columnas son "token" con tipo de datos de cadena, "automóvil", "camión", "autobús" y "moto" con tipo de datos enteros. Los valores para la columna "Token" son "P01", "P02", "P03" y "P04". Para la columna "auto", los valores son "18", "41", "39" y "24". La lista de valores "11", "33", "17" y "25" se almacenan en la columna "Truck". El "bus" tiene estos valores "42", "38", "10" y "21". La última columna, "Motorbike", sostiene las entradas "16", "34", "21" y "45".

Para preservar el marco de datos, hemos generado un objeto DataFrame, "transporte". Para poner este contenido a la vista, el método "print ()" se invoca con el objeto DataFrame como entrada.

Nuestro marco de datos con una amplia disposición de valores se exhibe en la consola de Python que tiene 5 columnas y 4 filas.

En esta demostración, ejerceremos el "PD.Método Melt () "para lograr el resultado esperado.

El "PD.se llama a la función de fle () ". Aquí el atributo que posee es "df_name", que hemos proporcionado como "transporte", y el "id_vars" toma la columna, que se utilizará como el identificador alrededor del cual derretiremos el marco de datos de datos. Hemos seleccionado la columna "token" para "id_var". El "value_var" obtiene columnas que debe impitar; Si no especificamos columnas, tomará todas las columnas, excepto la que se establece como un identificador. Entonces, las columnas que suministramos para modificar un "automóvil", "camión", "autobús" y "moto". Hemos creado una variable "transporte" y la asignamos la salida generada invocando el "PD.Función Melt () ". Por último, el resultado se presenta a la vista utilizando el método "print ()".

El marco de datos transformado que obtenemos se ha mostrado remodelándolo en un formato largo. El largo cuadro de datos tiene 3 columnas "Token", "Variable" y "Valores". El "token" se usa como identificador para el resto de los valores de la columna. La "variable" almacena las etiquetas de la columna en correspondencia al identificador. y el "valor" tiene los valores para cada entrada.

Conclusión

Puede haber una situación en la que la forma del marco de datos podría no adaptarse a su tarea. DataFrame puede estar en un formato largo o en un formato amplio. El marco de datos formateado amplio se puede remodelar en uno largo, y el marco de datos formateado largo puede modificarse en una disposición larga utilizando los métodos PANDAS. Para convertir el marco de datos en un formato amplio, hemos utilizado el "PD.Función Pivot () "al implementarla prácticamente en la herramienta Spyder. Del mismo modo, para remodelar el marco de datos de forma ancha hasta mucho, hemos empleado el "PD.Función Melt () "en el 2Dakota del Norte ejemplo. Ambos métodos son ejecutables y son muy útiles cada vez que encuentra la necesidad de remodelar su marco de datos.