portapapeles dataframe pandas

Del Portapapeles a DataFrame con Pandas: una guía rápida

Lea datos directamente desde el portapapeles sin guardarlos primero. Así es cómo.

Cuando escribo sobre una biblioteca o un nuevo concepto, normalmente me gusta mostrar cómo funciona a través de ejemplos concretos. Las fuentes que utilizo para los conjuntos de datos en mis artículos varían ampliamente. A veces creo conjuntos de datos de juguetes simples, mientras que otras veces voy con los sitios de conjuntos de datos establecidos como Kaggle y la búsqueda de Google . Sin embargo, cada vez que necesito mostrar un concepto, tengo que pasar por el laborioso trabajo de copiar los datos de la fuente, guardarlos en mi sistema y finalmente usarlos en mi entorno de desarrollo. Imagine mi sorpresa cuando descubrí un método integrado en Pandas creado para abordar este mismo problema. 

¿Qué es la función pandas.read_clipboard()?

El método read_clipboard() de Pandas crea un DataFrame a partir de los datos copiados en el portapapeles. Lee el texto del portapapeles y lo pasa a read_csv(), que luego devuelve un objeto DataFrame analizado.

Este método, acertadamente llamado read_clipboard, es un salvador absoluto cuando desea probar rápidamente alguna función o biblioteca nueva. Aquí se explica cómo usarlo.

Usando la función pandas.read_clipboard()

El método read_clipboard() de Pandas crea un DataFrame a partir de los datos copiados en el portapapeles. Lee el texto del portapapeles y lo pasa a read_csv () , que luego devuelve un objeto DataFrame analizado.

Continua leyendo: 10 herramientas de manipulación de imágenes de Python que puede usar hoy

Sintaxis

pandas.read_clipboard(sep='\s+', **kwargs)

Si ha trabajado con Pandas read_csv(), el read_clipboard()método es esencialmente el mismo. La única diferencia es que la fuente de datos en este último proviene del búfer del portapapeles en lugar de un archivo CSV.

Uso

Veamos ahora varias formas de usar este método. Los principales pasos involucrados son:

portapapeles-dataframe-pandas
Pasos involucrados | Imagen por autor

1. Copiar datos de archivos de Excel

Comenzaremos copiando algunos conjuntos de datos de un archivo de Excel. Este es el escenario más común que encontrará.

Ahora ha copiado los datos en el portapapeles. A continuación, navegaremos a una instancia de Jupyter Notebook (o cualquier IDE) y escribiremos el siguiente fragmento de código:

import pandas as pd
df = pd.read_clipboard()
df
portapapeles-dataframe-pandas
DataFrame obtenido del conjunto de datos copiado | Imagen por autor

El conjunto de datos copiados se pasa a la variable DataFrame y ahora está disponible en su entorno. Aquí hay una demostración del proceso.

Te puede interesar: Cómo habilitar las notificaciones de Jupyter Notebook

2. Copiar datos de archivos CSV

Si tiene un archivo CSV, los pasos siguen siendo los mismos. Solo necesitará hacer ciertos cambios en los parámetros de la función. Considere los siguientes datos CSV:

,Order ID,Category,Sales,Quantity,Discount
0,1,Apparels,16.448,2,0.2
1,2,Electronics,65.0,87,0.2
2,3,Cosmetics,272.736,3,0.2
3,4,Apparels,3.54,2,0.8
4,5,Electronics,19.536,3,0.2
5,6,Cosmetics,19.44,3,0.0
6,7,Grocery,12.78,3,0.0
7,8,Grocery,2573.82,9,0.0
8,9,Apparels,609.98,2,0.0
9,10,Cosmetics,300.0,10,0.5

Copie los datos anteriores y ejecute el código a continuación.

df = pd.read_clipboard(
  sep=",",
  header="infer",
  index_col=0,
  names=["Order", "ID", "Category", "Sales", "Quantity", "Discount"],
)
df
portapapeles-dataframe-pandas
DataFrame obtenido del conjunto de datos copiado | Imagen por autor

Obtenemos el mismo DataFrame que en el paso uno. La única diferencia es que teníamos que pasar el nombre de las columnas y la información sobre el encabezado y la columna de índice.

Consejo de Pandas: cómo importar un conjunto de datos desde el portapapeles y copiar un marco de datos a un portapapeles

3. Copiar datos de páginas web

También puede copiar los datos de cualquier fuente, incluida una página web, siempre que esté estructurada en forma de DataFrame. Este es un ejemplo de cómo copiar datos de StackOverflow e importarlos a un DataFrame.

Más tutoriales: Cómo generar subparcelas con Matplotlib de Python

4. Guardar los datos

Podemos usar los datos del portapapeles para guardar el conjunto de datos para uso futuro en el formato deseado.

df.to_csv('data.csv')

También puede guardar los datos en formato HTML para mostrar los datos como tablas HTML.

df.to_html('data.html')
portapapeles-dataframe-pandas
Pandas DataFrame guardado como una tabla HTML | Imagen por autor

Ahora que ha aprendido sobre el read_clipboardmétodo, definitivamente querrá probarlo. También puede consultar otros blogs que he escrito sobre la funcionalidad de Pandas. Por ejemplo, este lo ayuda a crear diagramas interactivos directamente con Pandas, y esta es una guía práctica para clasificar DataFrames en Pandas.