Tengo una larga lista de listas de la siguiente forma ---
a = [[1.2,'abc',3],[1.2,'werew',4],........,[1.4,'qew',2]]
es decir, los valores en la lista son de diferentes tipos: float, int, strings. ¿Cómo lo escribo en un archivo csv para que mi archivo csv de salida se vea como
1.2,abc,3
1.2,werew,4
.
.
.
1.4,qew,2
Respuestas:
El módulo CSV incorporado de Python puede manejar esto fácilmente:
Esto supone que su lista se define como
a
, como está en su pregunta. Puede ajustar el formato exacto del CSV de salida a través de los diversos parámetros opcionalescsv.writer()
según lo documentado en la página de referencia de la biblioteca vinculada anteriormente.Actualización para Python 3
fuente
Podrías usar
pandas
:fuente
pandas
si la biblioteca integradacsv
puede hacerlo.documentos oficiales: http://docs.python.org/2/library/csv.html
fuente
writerow
No toma múltiples argumentos.Si por cualquier razón usted quiere hacerlo manualmente (sin utilizar un módulo como
csv
,pandas
,numpy
etc.):Por supuesto, lanzar su propia versión puede ser propenso a errores e ineficiente ... por eso generalmente hay un módulo para eso. Pero a veces escribir el suyo puede ayudarlo a comprender cómo funcionan, y a veces es más fácil.
fuente
El uso de csv.writer en mi gran lista tomó bastante tiempo. Decidí usar pandas, era más rápido y más fácil de controlar y comprender:
Lo bueno es que puedes cambiar algunas cosas para hacer un mejor archivo csv:
fuente
La solución de Ambers también funciona bien para arreglos numpy:
fuente
Si no desea importar un
csv
módulo para eso, puede escribir una lista de listas en un archivo csv utilizando solo los elementos integrados de Pythonfuente
Asegúrese de indicar
lineterinator='\n'
cuándo crear el escritor; de lo contrario, podría escribirse una línea vacía adicional en el archivo después de cada línea de datos cuando las fuentes de datos son de otro archivo csv ...Aquí está mi solución:
fuente
¿Qué tal volcar la lista de listas en pickle y restaurarla con el módulo pickle ? Es muy conveniente
fuente
Recibí un mensaje de error al seguir los ejemplos con un parámetro de nueva línea en la función csv.writer. El siguiente código funcionó para mí.
fuente