Header Ads Widget

Ticker

6/recent/ticker-posts

Tutorial de Python Pandas: Introducción a DataFrames

 Pandas es una biblioteca Python de código abierto que proporciona análisis y manipulación de datos en la programación Python .

Es una biblioteca muy prometedora en representación de datos, filtrado y programación estadística. La pieza más importante en pandas es el DataFrame donde almacena y juega con los datos.

En este tutorial, aprenderá qué es el DataFrame, cómo crearlo a partir de diferentes fuentes, cómo exportarlo a diferentes salidas y cómo manipular sus datos.

Instalar pandas

Puede instalar pandas en Python usando pip . Ejecute el siguiente comando en cmd:

pip instalar pandas

Tutorial de Python Pandas

Además, puedes instalar pandas usando conda así:

conda instalar pandas

Leer archivo de Excel

Puede leer desde un archivo de Excel usando el método read_excel () de pandas. Para esto, necesita importar un módulo más llamado xlrd.

Instale xlrd usando pip:

pip instalar xlrd

Tutorial de Python Pandas

El siguiente ejemplo demuestra cómo leer desde una hoja de Excel:

  • Creamos una hoja de Excel con los siguientes contenidos
Tutorial de Python Pandas
  • Importa el módulo de pandas:

importar pandas

  1. Pasaremos el nombre del archivo de Excel y el número de hoja de donde necesitamos leer los datos al método read_excel ().

pandas.read_excel ('pandasExcel.xlsx', 'Hoja1')

El fragmento anterior generará el siguiente resultado:

Si verifica el tipo de salida usando la palabra clave type, le dará el siguiente resultado:

<clase 'pandas.core.frame.DataFrame'>

Se llama DataFrame ! Esa es la unidad básica de los pandas con la que nos ocuparemos hasta el final del tutorial.

El DataFrame es una estructura bidimensional etiquetada donde podemos almacenar datos de diferentes tipos. DataFrame es similar a una tabla SQL o una hoja de cálculo de Excel.

Importar archivo CSV

Para leer desde un archivo CSV, puede usar el método read_csv () de pandas.

Importa el módulo de pandas:

importar pandas

Ahora llame al método read_csv () de la siguiente manera:

pandas.read_csv ('Libro1.csv')

Book1.csv tiene el siguiente contenido:

Tutorial de Python Pandas

El código generará el siguiente DataFrame:

Leer archivo de texto

También podemos usar el método read_csv de pandas para leer desde un archivo de texto; considere el siguiente ejemplo:

1
2
3
import pandas
 
pandas.read_csv('myFile.txt')

MyFile.txt tiene el siguiente aspecto:

Tutorial de Python Pandas

La salida del código anterior será:

Tutorial de Python Pandas

Este archivo de texto se trata como un archivo CSV porque tenemos elementos separados por comas. El archivo también puede usar otro delimitador, como un punto y coma, tabulación, etc.

Supongamos que tenemos un delimitador de tabulaciones y el archivo se ve así:

Tutorial de Python Pandas

Cuando el delimitador es una pestaña, tendremos el siguiente resultado:

Dado que pandas no tiene idea sobre el delimitador, traduce la pestaña a \ t.

Para definir el carácter de tabulación como un delimitador, pase el argumento delimitador de esta manera:

pandas.read_csv ('myFile.txt', delimiter = '\ t')

Ahora la salida será:

Tutorial de Python Pandas

Parece correcto ahora.

Leer SQL

Puede usar el método read_sql () de pandas para leer desde una base de datos SQL. Esto se demuestra en el siguiente ejemplo:

1
2
3
4
5
6
7
import sqlite3
 
import pandas
 
con = sqlite3.connect('mydatabase.db')
 
pandas.read_sql('select * from Employee', con)

En este ejemplo, nos conectamos a una base de datos SQLite3 que tiene una tabla llamada "Empleado". Usando el método read_sql () de pandas, pasamos una consulta y un objeto de conexión al método read_sql (). La consulta obtiene todos los datos de la tabla.

Nuestra tabla de empleados tiene el siguiente aspecto:

Tutorial de Python Pandas

Cuando ejecute el código anterior, la salida será como la siguiente:

Tutorial de Python Pandas

Seleccionar columnas

Supongamos que tenemos tres columnas en la tabla Empleado como esta:

Tutorial de Python Pandas

Para seleccionar columnas de la tabla, pasaremos la siguiente consulta:

seleccione Nombre, Trabajo de Empleado

La declaración del código de pandas será la siguiente:

pandas.read_sql ('seleccionar nombre, trabajo del empleado', con)

Tutorial de Python Pandas

También podemos seleccionar una columna de una tabla accediendo al marco de datos a. Considere el siguiente ejemplo:

1
2
3
x = pandas.read_sql('select * from Employee', con)
 
x['Name']

El resultado será el siguiente:

Tutorial de Python Pandas

Seleccionar filas por valor

Primero, crearemos un DataFrame del que seleccionaremos filas.

Para crear un DataFrame, considere el siguiente código:

1
2
3
4
5
import pandas
 
frame_data = {'name': ['James', 'Jason', 'Rogers'], 'age': [18, 20, 22], 'job': ['Assistant', 'Manager', 'Clerk']}
 
df = pandas.DataFrame(frame_data)

En este código, creamos un DataFrame con tres columnas y tres filas usando el método DataFrame () de pandas. El resultado será el siguiente:

Para seleccionar una fila según el valor, ejecute la siguiente declaración:

df.loc [df ['nombre'] == 'Jason']

df.loc [] o DataFrame.loc [] es una matriz booleana que se puede usar para acceder a filas o columnas por valores o etiquetas. En el código anterior, se buscará la fila donde el nombre sea igual a Jason.

La salida será:

Seleccionar fila por índice

Para seleccionar una fila por su índice, podemos usar el operador de corte (:) o la matriz df.loc [].

Considere el siguiente código:

1
2
3
>>> frame_data = {'name': ['James', 'Jason', 'Rogers'], 'age': [18, 20, 22], 'job': ['Assistant', 'Manager', 'Clerk']}
 
>>> df = pandas.DataFrame(frame_data)

Creamos un DataFrame. Ahora accedamos a una fila usando df.loc []:

>>> df.loc [1]

Como puede ver, se recupera una fila. Podemos hacer lo mismo usando el operador de corte de la siguiente manera:

>>> df [1: 2]

Cambiar el tipo de columna

El tipo de datos de una columna se puede cambiar mediante el atributo astype () de DataFrame. Para verificar el tipo de datos de las columnas, usamos el atributo dtypes de DataFrame.

>>> df.dtypes

La salida será:

Ahora para convertir el tipo de datos de uno a otro:

>>> df.name = df.name.astype (str)

Obtuvimos la columna 'nombre' de nuestro DataFrame y cambiamos su tipo de datos de objeto a cadena.

Aplicar una función a columnas / filas

Para aplicar una función en una columna o fila, puede usar el método apply () de DataFrame.

Considere el siguiente ejemplo:

1
2
3
>>> frame_data = {'A': [1, 2, 3], 'B': [18, 20, 22], 'C': [54, 12, 13]}
 
>>> df = pandas.DataFrame(frame_data)

Creamos un DataFrame y agregamos valores de tipo entero en las filas. Para aplicar una función, por ejemplo, raíz cuadrada en los valores, importaremos el módulo numpy para usar la función sqrt de la siguiente manera:

1
2
3
>>> import numpy as np
 
>>> df.apply(np.sqrt)

La salida será la siguiente:

Para aplicar la función de suma, el código será:

>>> df.apply (np.sum)

Para aplicar la función a una columna específica, puede especificar la columna de esta manera:

>>> df ['A']. aplicar (np.sqrt)

Ordenar valores / ordenar por columna

Para ordenar valores en un DataFrame, use el método sort_values ​​() del DataFrame.

Cree un DataFrame con valores enteros:

1
2
3
>>> frame_data = {'A': [23, 12, 30], 'B': [18, 20, 22], 'C': [54, 112, 13]}
 
>>> df = pandas.DataFrame(frame_data)

Ahora para ordenar los valores:

>>> df.sort_values ​​(por = ['A'])

La salida será:

El método sort_values ​​() tiene un atributo 'por' que es necesario. En el código anterior, los valores están ordenados por columna A. Para ordenar por múltiples columnas, el código será:

>>> df.sort_values ​​(por = ['A', 'B'])

Si desea ordenar en orden descendente, establezca el atributo ascendente de set_values ​​en False de la siguiente manera:

>>> df.sort_values ​​(por = ['A'], ascendente = Falso)

La salida será:

Soltar / Eliminar duplicados

Para eliminar filas duplicadas de un DataFrame, use el método drop_duplicates () del DataFrame.

Considere el siguiente ejemplo:

1
2
3
>>> frame_data = {'name': ['James', 'Jason', 'Rogers', 'Jason'], 'age': [18, 20, 22, 20], 'job': ['Assistant', 'Manager', 'Clerk', 'Manager']}
 
>>> df = pandas.DataFrame(frame_data)

Aquí creamos un DataFrame con una fila duplicada. Para verificar si hay filas duplicadas en el DataFrame, use el método duplicated () del DataFrame.

>>> df.duplicated ()

El resultado será:

Puede verse que la última fila es un duplicado. Para quitar o quitar esta fila, ejecute la siguiente línea de código:

>>> df.drop_duplicates ()

Ahora el resultado será:

Soltar duplicados por columna

A veces, tenemos datos en los que los valores de las columnas son iguales y deseamos eliminarlos. Podemos eliminar una fila por columna pasando el nombre de la columna que necesitamos eliminar.

Por ejemplo, tenemos el siguiente DataFrame:

1
2
3
>>> frame_data = {'name': ['James', 'Jason', 'Rogers', 'Jason'], 'age': [18, 20, 22, 21], 'job': ['Assistant', 'Manager', 'Clerk', 'Employee']}
 
>>> df = pandas.DataFrame(frame_data)

Aquí puedes ver que Jason es dos veces. Si desea eliminar el duplicado por columna, simplemente pase el nombre de la columna de la siguiente manera:

>>> df.drop_duplicates (['nombre'])

El resultado será como el siguiente:

Eliminar una columna

Para eliminar una columna o fila completa, podemos usar el método drop () del DataFrame especificando el nombre de la columna o fila.

Considere el siguiente ejemplo:

>>> df.drop (['trabajo'], eje = 1)

En esta línea de código, estamos eliminando la columna denominada 'trabajo'. El argumento del eje es necesario aquí. Si el valor del eje es 1, significa que queremos eliminar las columnas, si el valor del eje es 0, significa que la fila se eliminará. En valores de eje, 0 es para índice y 1 es para columnas.

El resultado será:

Eliminar filas

Podemos usar el método drop () para eliminar o eliminar una fila pasando el índice de la fila.

Supongamos que tenemos el siguiente DataFrame:

1
2
3
>>> frame_data = {'name': ['James', 'Jason', 'Rogers'], 'age': [18, 20, 22], 'job': ['Assistant', 'Manager', 'Clerk']}
 
>>> df = pandas.DataFrame(frame_data)

Para eliminar una fila con índice 0 donde el nombre es James, la edad es 18 y el trabajo es Asistente, use el siguiente código:

>>> df.drop ([0])

Creemos un DataFrame donde los índices son los nombres:

1
2
3
>>> frame_data = {'name': ['James', 'Jason', 'Rogers'], 'age': [18, 20, 22], 'job': ['Assistant', 'Manager', 'Clerk']}
 
>>> df = pandas.DataFrame(frame_data, index = ['James', 'Jason', 'Rogers'])

Ahora podemos eliminar una fila con un valor determinado. Por ejemplo, si queremos eliminar una fila donde el nombre es Rogers, entonces el código será:

>>> df.drop (['Rogers'])

La salida será:

También puede eliminar un rango de filas como:

>>> df.drop (df.index [[0, 1]])

Esto eliminará filas del índice 0 a 1 y solo queda una fila desde nuestro DataFrame compuesto por 3 filas:

Tutorial de Python Pandas

Si desea eliminar la última fila del DataFrame y no sabe cuál es el número total de filas, puede usar la indexación negativa de la siguiente manera:

>>> df.drop (df.index [-1])

-1 elimina la última fila. De manera similar, -2 eliminará las últimas 2 filas y así sucesivamente.

Tutorial de Python Pandas

Sumar una columna

Puede usar el método sum () del DataFrame para sumar los elementos de la columna.

Supongamos que tenemos el siguiente DataFrame:

1
2
3
>>> frame_data = {'A': [23, 12, 12], 'B': [18, 18, 22], 'C': [13, 112, 13]}
 
>>> df = pandas.DataFrame(frame_data)

Ahora, para sumar los elementos de la columna A, use la siguiente línea de código:

>>> df ['A']. sum ()

Tutorial de Python Pandas

También puede usar el método apply () del DataFrame y pasar el método de suma de numpy para sumar los valores.

Contar valores únicos

Para contar valores únicos en una columna, puede usar el método nunique () del DataFrame.

Supongamos que tenemos DataFrame como se muestra a continuación:

1
2
3
>>> frame_data = {'A': [23, 12, 12], 'B': [18, 18, 22], 'C': [13, 112, 13]}
 
>>> df = pandas.DataFrame(frame_data)

Para contar los valores únicos en la columna A:

>>> df ['A']. nunique ()

Tutorial de Python Pandas

Como puede ver, la columna A tiene solo 2 valores únicos 23 y 12 y otro 12 es un duplicado, por eso tenemos 2 en la salida.

Si desea contar todos los valores en una columna, puede usar el método count () de la siguiente manera:

>>> df ['A']. count ()

Tutorial de Python Pandas

Subconjunto de filas

Para seleccionar un subconjunto de un DataFrame, puede utilizar los corchetes.

Por ejemplo, tenemos un DataFrame que contiene algunos números enteros. Podemos seleccionar o crear subconjuntos de una fila como esta:

df. [inicio: cuenta]

El punto de inicio se incluirá en el subconjunto, pero no se incluye el punto de parada. Por ejemplo, para seleccionar 3 filas comenzando desde la primera fila, escribirás:

>>> df [0: 3]

La salida será:

Tutorial de Python Pandas

Ese código significa comenzar desde la primera fila que es 0 y seleccionar 3 filas.

Del mismo modo, para seleccionar las 2 primeras filas, escribirás:

>>> df [0: 2]

Tutorial de Python Pandas

Para seleccionar o crear un subconjunto de la última fila, use la indexación negativa como:

>>> df [-1:]

Tutorial de Python Pandas

Escribir en Excel

Para escribir un DataFrame en una hoja de Excel, podemos usar el método to_excel ().

Para escribir en una hoja de Excel, tenemos que abrir la hoja y para abrir una hoja de Excel tendremos que importar el módulo openpyxl.

Instale openpyxl usando pip:

pip instalar openpyxl

Tutorial de Python Pandas

Considere el siguiente ejemplo:

1
2
3
4
5
6
7
>>> import openpyxl
 
>>> frame_data = {'name': ['James', 'Jason', 'Rogers'], 'age': [18, 20, 22], 'job': ['Assistant', 'Manager', 'Clerk']}
 
>>> df = pandas.DataFrame(frame_data)
 
>>> df.to_excel("pandasExcel.xlsx", "Sheet1")

El archivo de Excel tendrá el siguiente aspecto:

Tutorial de Python Pandas

Escribir en CSV

De manera similar, para escribir un DataFrame en CSV, puede usar el método to_csv () como en la siguiente línea de código.

>>> df.to_csv ("pandasCSV.csv")

El archivo de salida será como el siguiente:

Tutorial de Python Pandas

Escribir en SQL

Para escribir datos en SQL, podemos usar el método to_sql ().

Considere el siguiente ejemplo:

01
02
03
04
05
06
07
08
09
10
11
import sqlite3
 
import pandas
 
con = sqlite3.connect('mydatabase.db')
 
frame_data = {'name': ['James', 'Jason', 'Rogers'], 'age': [18, 20, 22], 'job': ['Assistant', 'Manager', 'Clerk']}
 
df = pandas.DataFrame(frame_data)
 
df.to_sql('users', con)

En este código, creamos una conexión con la base de datos sqlite3. Luego creamos un DataFrame con tres filas y tres columnas.

Finalmente, usamos el método to_sql de nuestro DataFrame (df) y pasamos el nombre de la tabla donde se almacenarán los datos junto con el objeto de conexión.

La base de datos SQL tendrá el siguiente aspecto:

Tutorial de Python Pandas

Escribir en JSON

Puede usar el método to_json () del DataFrame para escribir en un archivo JSON.

Esto se demuestra en el siguiente ejemplo:

>>> df.to_json ("myJson.json")

En esta línea de código, el nombre del archivo JSON se pasa como argumento. El DataFrame se almacenará en el archivo JSON. El archivo tendrá el siguiente contenido:

Tutorial de Python Pandas

Escribir en archivo HTML

Puede utilizar el método to_html () del DataFrame para crear un archivo HTML con el contenido del DataFrame.

Considere el siguiente ejemplo:

>>> df.to_html ("myhtml.html")

El archivo de resultados tendrá el siguiente contenido:

Tutorial de Python Pandas

Cuando abra el archivo HTML en el navegador, tendrá el siguiente aspecto:

Tutorial de Python Pandas

Trabajar con pandas es muy fácil. ¡Es como trabajar con hojas de Excel! pandas DataFrame es una biblioteca de piezas muy flexible que puede usar.

Espero que el tutorial te resulte útil. Sigue regresando.

Publicar un comentario

0 Comentarios