Ich schreibe ein Python-Modul, wo ich eine .csv-Datei mit 2 Spalten und einer zufälligen Anzahl von Zeilen lesen. Ich gehe dann durch diese Zeilen bis Spalte 1> x. An dieser Stelle brauche ich die Daten aus der aktuellen Zeile und der vorherigen Zeile, um einige Berechnungen durchzuführen.Anzahl der Zeilen aus .csv-Datei
Derzeit verwende ich 'für i in Bereich (Zeilen)', aber jede CSV-Datei wird eine andere Anzahl von Zeilen haben, so dass dies nicht funktioniert.
Der Code kann unten gesehen werden:
mit Arraysrows = 73
for i in range(rows):
c_level = Strapping_Table[Tank_Number][i,0] # Current level
c_volume = Strapping_Table[Tank_Number][i,1] # Current volume
if c_level > level:
p_level = Strapping_Table[Tank_Number][i-1,0] # Previous level
p_volume = Strapping_Table[Tank_Number][i-1,1] # Previous volume
x = level - p_level # Intermediate values
if x < 0:
x = 0
y = c_level - p_level
z = c_volume - p_volume
volume = p_volume + ((x/y) * z)
return volume
Bei der Wiedergabe um, ich verwendet:
for row in Tank_data:
print row[c] # print column c
time.sleep(1)
Dies geht durch alle Reihen, aber ich kann die vorherigen Zeilen Daten nicht zugreifen mit diese Methode.
Ich habe darüber nachgedacht, vorherige Zeile und aktuelle Zeile in jeder Schleife zu speichern, aber bevor ich das tue, fragte ich mich, ob es eine einfache Möglichkeit gibt, die Anzahl der Zeilen in einem CSV zu erhalten.
Die Indizierung 'Strapping_Table [Tank_Number] [i, 0]' legt nahe, dass Sie dies bereits als 'numpy' Array oder' Pandas' Datenframe geladen haben. '[i, 0]' ist keine Python-Liste oder String-Indizierung. Geben Sie uns weitere Informationen zu diesem 'Strapping_table' -Objekt - type, shape, dtype. Wenn dies bereits geladen ist, ist dies kein 'csv' Problem; es ist Array eins. – hpaulj
Wenn Sie die Daten bereits in ein Array geladen haben, müssen Sie deren Größe nicht erraten. 'arr.shape [0]' ist die Anzahl der 'Zeilen' in einem 2D-Array. Und Sie können diese Berechnung wahrscheinlich ohne eine Schleife durchführen - nur ein paar Array-Operationen. Aber wir brauchen mehr Details. – hpaulj
Entschuldigung, ja, ich wurde verwirrt. Ich habe es bereits mit 'genfromtxt' aus' numpy' in ein Array konvertiert. 'arr.shape [0]' wäre nützlich gewesen, aber ich habe nur die vorherige Zeile und die aktuelle Zeile gleichzeitig gespeichert. Allerdings sollte 'arr.shape' mir bei einigen anderen Modulen helfen, die ich entwickle. Vielen Dank. –