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
Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.4, que…
Hemos llegado a la sexta entrega de la serie. Si las cuatro primeras fueron las…
En Analytics Lane seguimos apostando por desarrollar herramientas que simplifiquen el trabajo de analistas y…
Imagina que construyes un scorecard con un Gini de 0,85. Un resultado extraordinario, muy por…
En las cuatro entregas anteriores recorrimos los disparates más folclóricos del género: faldas que predicen…
En Analytics Lane seguimos evolucionando nuestras herramientas y damos un paso más con el lanzamiento…
This website uses cookies.