Ich benutze einen Raspberry Pi, um Wetterdaten zu sammeln, und es geht so gut. Alle gesammelten Daten werden in einer kommagetrennten TXT-Datei gespeichert.Hinzufügen aller Werte in einer bestimmten Spalte in Python
Jetzt möchte ich die durchschnittliche Temperatur von diesen gesammelten Daten erhalten, deshalb muss ich alle Einträge einer bestimmten Spalte zusammenfügen.
hier ein Teil der gesammelten Daten ist, ist die zweite Spalte oder Index [1] die erfassten Temperaturdaten:
00:00,1.5,1025,100,1.5,Yes
01:00,2.0,1025,100,2.0,Yes
02:00,2.5,1025,100,2.5,Yes
03:00,2.7,1025,100,2.7,Yes
04:00,2.8,1025,100,2.8,Yes
05:00,3.0,1025,100,3.0,Yes
06:00,3.7,1025,100,3.7,Yes
07:00,4.1,1024,100,4.1,Yes
08:00,4.2,1025,100,4.2,Yes
09:00,4.6,1026,100,4.6,Yes
10:00,5.9,1026,100,5.9,Yes
11:00,6.3,1026,100,6.3,Yes
12:00,6.8,1026,100,6.8,Yes
13:00,7.9,1026,100,7.9,Yes
14:00,8.1,1026,100,8.1,Yes
15:00,7.8,1026,100,7.8,Yes
16:00,6.8,1026,100,6.8,Yes
17:00,5.8,1027,100,5.8,Yes
18:00,5.0,1027,100,5.0,Yes
19:00,4.7,1028,100,4.7,Yes
20:00,4.0,1028,100,4.0,Yes
21:00,3.7,1028,100,3.7,Yes
22:00,3.5,1028,100,3.5,Yes
23:00,4.0,1029,100,4.0,Yes
23:59,2.8,1029,100,2.8,Yes
Hier ist der Beispielcode, der ich versucht wurden zu verwenden, um den Durchschnitt zu erhalten Temp, aber es hält einen Fehler werfen:
#Adding all values in a columns
AvTemp = 0
with open(YdPath + yFileDate + '.txt', 'r') as AvgTemp:
for line in AvgTemp:
line = line.strip().split(',')
AvTemp += sum(int(line[1]))
print AvTemp
Hier ist der Fehler:
AvTemp += sum(int(line[1])/25)
ValueError: invalid literal for int() with base 10: '1.5'
so I kann sehen, dass der Eintrag eine Dezimalstelle verursacht den Fehler, weil es keine Ganzzahl ist, aber ich bekomme immer noch einen Fehler, auch wenn ich den int
Teil entfernen.
Jede Hilfe wäre
Dank
UPDATE nach dem Versuch, verschiedene Tipps
Nach dem Versuch, die verschiedenen Tipps und Antworten geschätzt werden hinzugefügt Ich bin immer noch nicht das erforderliche Ergebnis zu bekommen. Grundsätzlich brauche ich nur das tatsächliche Endergebnis zu drucken, d. H. Die Summe von index[1]
entspricht 114,2, dann wird diese durch die Nummer len
der Zeilen geteilt, in diesem Fall 25, um ein Ergebnis von 4,568 zu ergeben.
diese verschiedenen Hilfe-Tipps Mit dieser zur Zeit ist das, was auf dem Bildschirm ausgegeben wird:
1.5
3.5
6.0
8.7
11.5
14.5
18.2
22.3
26.5
31.1
37.0
43.3
50.1
58.0
66.1
73.9
80.7
86.5
91.5
96.2
100.2
103.9
107.4
111.4
114.2
Sie können sehen, dass es jede Zeile mit der Zugabe der letzten Ausdrucken hält vor dem endgültigen Gesamt Kommen 114.2. (Ich habe den Divisionsteil hier weggelassen). Ich möchte wirklich nicht, dass alle anderen Zeilen gedruckt werden. Ich nehme an, es ist ein break
benötigt irgendwo vielleicht?
Versuch 'AvTemp + = Summe (float (Linie [1]))' – EdChum
Mögliche Duplikat von [ Fügen Sie alle Werte in einer CSV-Spalte in Python] (http://stackoverflow.com/questions/10657965/add-all-values-in-a-csv-column-in-python) –