Python - CSV zeitorientiert Transponieren einer großen Anzahl von Spalten in Zeilen

Ich habe viele CSV-Dateien, die "spaltenorientiert" sind und die ich vorverarbeiten muss, um sie endgültig zu indizieren.

Dies sind zeitorientierte Daten mit einer sehr großen Anzahl von Spalten für jedes "Gerät" (bis zu 128 Spalten) wie:

LDEV_XXXXXX.csv             
Serial number : XXXXX(VSP)              
From : 2014/06/04 05:58             
To   : 2014/06/05 05:58             
sampling rate : 1               

"No.","time","00:30:00X(X2497-1)","00:30:01X(X2498-1)","00:30:02X(X2499-1)"
"242","2014/06/04 10:00",0,0,0
"243","2014/06/04 10:01",0,0,0
"244","2014/06/04 10:02",9,0,0
"245","2014/06/04 10:03",0,0,0
"246","2014/06/04 10:04",0,0,0
"247","2014/06/04 10:05",0,0,0

Mein Ziel ist es, Daten (wenn es sich um den richtigen Begriff handelt) in Zeilen umzuwandeln, damit ich die Daten viel effizienter bearbeiten kann, wie zum Beispiel:

"time",device,value
"2014/06/04 10:00","00:30:00X(X2497-1)",0
"2014/06/04 10:00","00:30:01X(X2498-1)",0
"2014/06/04 10:00","00:30:02X(X2499-1)",0
"2014/06/04 10:01","00:30:00X(X2497-1)",0
"2014/06/04 10:01","00:30:01X(X2498-1)",0
"2014/06/04 10:01","00:30:02X(X2499-1)",0
"2014/06/04 10:02","00:30:00X(X2497-1)",9
"2014/06/04 10:02","00:30:01X(X2498-1)",0
"2014/06/04 10:02","00:30:02X(X2499-1)",0

Und so weiter...

Hinweis: Ich habe die Rohdaten (die "," als Trennzeichen verwenden), Sie würden beachten, dass ich in den 6 ersten Zeilen die Spalte "Nein" löschen muss, die kein Interesse hat, dies aber nicht das Hauptziel ist und Schwierigkeit)

Ich habe einen Python-Startcode, um CSV-Daten zu transponieren, aber er ist nicht genau das, was ich brauche ...

import csv
import sys
infile = sys.argv[1]
outfile = sys.argv[2]

with open(infile) as f:
    reader = csv.reader(f)
    cols = []
    for row in reader:
        cols.append(row)

with open(outfile, 'wb') as f:
    writer = csv.writer(f)
    for i in range(len(max(cols, key=len))):
        writer.writerow([(c[i] if i<len(c) else '') for c in cols])

Beachten Sie, dass die Anzahl der Spalten beliebig ist, einige wenige und je nach Datei bis zu 128.

Ich bin mir ziemlich sicher, dass dies eine häufige Anforderung ist, aber ich konnte noch nicht den genauen Python-Code finden, der dies tut, oder ich konnte nicht ...

Bearbeiten:

Mehr Präzision:

Jede Zeitstempelzeile wird mit der Anzahl der Geräte wiederholt, sodass die Datei viel mehr Zeilen enthält (multipliziert mit der Anzahl der Geräte), aber nur wenige Zeilen (Zeitstempel, Gerät, Wert). Das gewünschte Endergebnis wurde aktualisiert: )

Bearbeiten:

Ich möchte das Skript mit argument1 für infile und argument2 für outfile benutzen können :-)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage