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
pandassi la biblioteca integradacsvpuede hacerlo.documentos oficiales: http://docs.python.org/2/library/csv.html
fuente
writerowNo toma múltiples argumentos.Si por cualquier razón usted quiere hacerlo manualmente (sin utilizar un módulo como
csv,pandas,numpyetc.):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
csvmó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