Ich bin ein Anfänger in Python und kann nicht mit einer der Momente meines Projekts fertig zu werden, so würde ich mich freuen, Sie, mir zu helfen :)Python - Die Berechnung der zweiten Spalte von der ersten in einer Datei
Letss vorstellen, ich habe eine * .txt-Datei mit nur einer Spalte, die wie folgt aussieht:
Column-1
row-1 0
row-2 25.00
row-3 27.14
row-4 29.29
row-5 31.43
row-6 33.57
* Spalte mit Zeilen wird hier nur hinzugefügt, um die Erläuterung zu vereinfachen.
Ich muss die zweite Spalte berechnen, die als Eingangsdaten von der Spalte-1 nimmt und das Ergebnis der Subtraktion dieses Zeilenwerts von der vorherigen (wenn der Zeile-1 (Spalte-1) Wert 0 ist), als es sollte 0 in der Zeile-1 (Spalte-2) auch sein). Es sollte sein wie:
- row-2 (Column-2) = row-2 (Column-1) - row-1 (Column-1)
- row-3 (Column-2) = Zeilen -3 (Spalte-1) - Zeile-2 (Spalte-1) und so weiter.
Lassen Sie mich Ihnen zeigen, wie die Ausgabedatei wie sein shoud:
Column-1 Column-2
row-1 0 0
row-2 25.00 25.00
row-3 27.14 2.14
row-4 29.29 2.15
row-5 31.50 2.21
row-6 33.57 2.07
Denn jetzt bin ich nur hier mit meiner Programmierung:
import sys
with open('file.txt', "r") as f:
sys.stdout = open('%s (calc).txt' % f.name, 'a')
for line in f:
column = line.strip().split()
Column_1 = float(column[0])
column.extend([None])
Ich frage mich, was als nächstes zu tun ist. Vielleicht ist Numpy für diese Aufgabe richtig? Ich bin nicht stark darin (grundsätzlich weiß ich es überhaupt nicht), sollte ich es lernen?
Wie auch immer, ich wäre wirklich dankbar für Ihren Beitrag.
einen Blick auf Pandas' Take rolling_apply: http://pandas.pydata.org/pandas-docs/stable/computation.html#moving-rolling-statistics-moments – asiviero