Los archivos de Excel y CSV son los formatos más utilizados para el intercambio de datos tabulados. En algunas situaciones puede ser necesario convertir los archivos de un formato a otro, cuando los usuarios que reciben los datos lo quieren en un formato concreto o cuando el programa no admite más que uno de tipos de archivo. En esta entrada vamos a ver se pueden convertir archivos CSV a XLSX con Python mediante el uso de Pandas y también como hacer el proceso inverso.
La conversión de un archivo en formato CSV a otro en formato de Microsoft Excel es una tarea relativamente sencilla. Solamente requiere importar el archivo en formato CSV en un DataFrame de Pandas para posteriormente guardar este en un nuevo archivo de Excel (tanto XLSX como XLS). Como se ha visto en una entrada anterior, la importación de un archivo CSV se puede hacer con el método read_csv de Pandas, con lo que se obtiene un DataFrame.
import pandas as pd
df = pd.read_csv('data.csv') Ahora una vez importado el DataFrame en memoria se puede guardar este mediante el método to_excel. Recordemos que al importar un DataFrame se genera un índice que no formaba parte de los datos originales y, en la mayoría de los casos, no deseamos que se exporte. Un problema que se puede solucionar simplemente asignado el valor faso a la propiedad index del método. Lo que se muestra en el siguiente ejemplo.
df.to_excel('data.xlsx', index=False) Ahora bien, si no vamos a usar el DataFrame no es necesario guardarlo, ya que se puede utilizar la interfaz fluida para ejecutar el comando en una única línea de código.
pd.read_csv('data.csv').to_excel('data.xlsx', index=False) Si por cuestiones de compatibilidad necesitamos exportar a un archivo de Excel en formato XLS en lugar de XLSX solamente tenemos que cambiar la extensión. El método to_excel inferirá automáticamente la librería que debe usar en cada caso. Aunque se también se le puede indicar explícitamente con la propiedad engine.
pd.read_csv('data.csv').to_excel('data.xls', index=False, engine='xlwt') Finalmente, para convertir un archivo Excel a CSV solamente hemos de usar lo ya aprendido en una interfaz fluida. Por ejemplo, para importar los datos y guardar en un nuevo CVS.
pd.read_excel('data.xlsx').to_csv('data.csv', index=False) Hay que recordar que en los libros Excel puede haber más de una hoja. Situación en la que Pandas importará la primera, salvo que se le indique lo contrario a través de la propiedad sheet_name.
En esta entrada hemos visto cómo, al combinar las funciones para trabajar con archivos CSV de Pandas con las funciones existentes para trabajar con archivos Excel, se puede solucionar en un a línea de código la conversión de archivos CSV a XLSX con Python. Algo que nos puede sacar de un problema en más de una situación.
Otra cosa que hemos constatado es la potencia que tiene la interfaz fluida de Python para plantear un problema de un sencilla y legible.
Imagen de Mudassar Iqbal en Pixabay
Hace poco publiqué una entrada en la que trataba de un sesgo bien documentado: aferrarse…
En un entrada previa explicamos qué son el WOE y el IV y por qué…
Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…
“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…
Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…
Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…
This website uses cookies.