El portapapeles es una forma rápida de mover datos entre las aplicaciones abiertas en una sesión. Por ejemplo, es posible copiar el código publicado e insertarlo en un editor de texto. Otra aplicación es copiar una parte de los datos de una hoja de cálculo e insertarlos en otra o en una sesión de Python. Para esto último se puede utilizar la función read_clipboard()
disponible en la librería pandas. El proceso inverso se puede llevar a cabo con el método to_clipboard()
de los objetos DataFrame
. A continuación, se mostrará cómo intercambiar datos con el portapapeles en Python mediante los métodos disponibles en pandas.
Conjunto de datos de ejemplo
A modo de ejemplo, se puede generar un archivo CVS con un conjunto de datos simulados en Mockaroo. En nuestro caso, el archivo generado se muestra a continuación.
id,first_name,last_name,email,gender,ip_address
1,Troy,Ragborne,[email protected],Male,20.100.138.151
2,Tracie,Jobern,[email protected],Female,229.188.42.56
3,Zulema,Chafney,[email protected],Female,113.181.173.108
4,Rosana,Rubroe,[email protected],Female,47.70.253.44
5,Kelsy,Sizeland,[email protected],Female,210.145.189.98
Este archivo se puede importar en una hoja de cálculo Excel, como se muestra en la siguiente captura de pantalla. Pudiendo copiar ahora su contenido al portapapeles.
Importar datos con read_clipboard()
La forma más fácil de importar los datos desde el portapapeles es mediante la función read_clipboard()
de pandas. Al ejecutarse devuelve un DataFrame
con el contenido del portapapeles. En caso de haber copiado los datos desde el Excel anterior se obtendrá el siguiente resultado.
pd.read_clipboard()
Los datos también se pueden importar directamente desde el archivo CSV, aunque en este caso se ha de indicar el separador. Por defecto el separador es uno o más espacios en blanco, en el caso del archivo CSV ha de ser una coma. Para ello es necesario utilizar el parámetro sep
de la función. Ahora si se copia el contenido del archivo CSV y se ejecuta el código se volverá a obtener un dataframe con los datos.
pd.read_clipboard(sep=',')
En este caso, si no se indica el separador los datos se importarán en una única columna. Por lo que es necesario seleccionar el separador correcto en cada caso.
Exportación de los datos con el método to_clipboard()
Los objetos DataFrame
de Python dispone de una propiedad para exportar al portapapeles, esta es to_clipboard()
. Así solamente se ha de escribir para exportar los datos.
df.to_clipboard()
Por defecto los datos se exportarán de una forma que se puedan pegar fácilmente en Excel. Este comportamiento se puede cambiar con los parámetros excel
y sep
. El parámetro excel
es True
cuando se desea exportar a Excel y falso cuando se desea explotar a un archivo de texto. Por otro lado, mediante el parámetro sep
se indica el separador que se utilizará para los campos.
Por ejemplo, para exportar los datos en un texto en formato CSV se ha de emplear la siguiente línea de código.
df.to_clipboard(sep=',')
Conclusiones
Conocer los métodos disponibles para importar y exportar datos al portapapeles puede facilitar el intercambio de datos en ciertas con hojas de cálculo o importar datos desde fuentes de texto. Por ejemplo, importar los datos desde una web. En Python esta tarea se puede realizar mediante los métodos disponibles en pandas que se han visto en esta entrada.
Imágenes: Pixabay (rawpixel)
Deja una respuesta