Seite 2 von 2

Re: Wetterdaten: Datei schreiben nicht möglich

Verfasst: Montag 26. Februar 2024, 14:04
von Julu
O.k., alles wieder auf Anfang: Die Daten haben wie schon gezeigt dieses Format:

Code: Alles auswählen

cat 'Weathercloud V832 2021-12.csv' | more
Datum (Europe/Berlin);Tempin (�C);Temp (�C);Chill (�C);Dewin (�C);Dew (�C);Heatin (�C);Heat (�C);Humin (%);Hum (%);Wspdhi (m/s);Wspdavg (m/s);Wdiravg (�);Bar (hPa)
;Rain (mm);Rainrate (mm/h);Solarrad (W/m�);Uvi ();
2021-12-12 21:20:00;22,5;7,8;7,8;;7,2;;;45;96;0,9;0,9;158;1.039,2;4,8;0,8;;;
2021-12-12 21:30:00;20,4;7,9;7,9;;7,3;;;45;96;0;0;158;1.039,3;4,8;0,8;;;
Import nach Pandas mit

Code: Alles auswählen

#!/usr/bin/env python3
import pandas as pd

file_import = '/home/jl/Media/DtJ/Projekt/Wetter/Test/Weathercloud V832 2021-12.csv'

temp_data = pd.read_csv(file_import, sep = ';', encoding = 'UTF-16LE', dayfirst = False)
liefert

Code: Alles auswählen

  Datum (Europe/Berlin) Tempin (°C) Temp (°C) Chill (°C)  Dewin (°C) Dew (°C)  \
0   2021-12-12 21:20:00        22,5       7,8        7,8         NaN      7,2   
1   2021-12-12 21:30:00        20,4       7,9        7,9         NaN      7,3   
2   2021-12-12 21:40:00        19,8         8          8         NaN      7,4   
3   2021-12-12 21:50:00        19,7       8,1        8,1         NaN      7,5   
4   2021-12-12 22:00:00        19,7       8,1        8,1         NaN      7,5   

   Heatin (°C)  Heat (°C)  Humin (%)  Hum (%) Wspdhi (m/s) Wspdavg (m/s)  \
0          NaN        NaN       45.0     96.0          0,9           0,9   
1          NaN        NaN       45.0     96.0            0             0   
2          NaN        NaN       49.0     96.0          0,8           0,8   
3          NaN        NaN       49.0     96.0            0             0   
4          NaN        NaN       50.0     96.0          0,5           0,5   

   Wdiravg (°) Bar (hPa) Rain (mm) Rainrate (mm/h)  Solarrad (W/m²)  Uvi ()  \
0        158.0   1.039,2       4,8             0,8              NaN     NaN   
1        158.0   1.039,3       4,8             0,8              NaN     NaN   
2        225.0   1.039,3       4,8             0,8              NaN     NaN   
3        202.0   1.039,4       4,8             0,8              NaN     NaN   
4        225.0   1.039,3       4,8               0              NaN     NaN   

   Unnamed: 18  
0          NaN  
1          NaN  
2          NaN  
3          NaN  
4          NaN  
Auf den ersten Blick o.k., verwirrend finde aber doch, dass bei den Daten eine weitere Spalte angehängt ist. Natürlich könnte man die für die weitere Verarbeitung einfach auslassen, aber ich frage mich doch, warum sie angefügt ist; am Separator ";" kann es mE nicht liegen, das sind für die Überschrift und die Datenzeilen jeweils 18.

Re: Wetterdaten: Datei schreiben nicht möglich

Verfasst: Montag 26. Februar 2024, 14:10
von __deets__
Die Daten enden in einem Semikolon. Dahinter muesste ein Name stehen. Tut es aber halt nicht. Also nennt Pandas das "Unnamed.

Re: Wetterdaten: Datei schreiben nicht möglich

Verfasst: Montag 26. Februar 2024, 20:47
von Julu
__deets__ hat geschrieben: Montag 26. Februar 2024, 14:10Also nennt Pandas das "Unnamed.
Ja, so weit klar, aber warum gibt es diese zusätzliche Spalte, wenn die Zeile mit den Überschriften auch mit einem Semikolon endet (und alle Zeilen jeweils 18 Spalten haben)?

Re: Wetterdaten: Datei schreiben nicht möglich

Verfasst: Montag 26. Februar 2024, 21:49
von Sirius3
Es sind 18 Trennzeichen, und damit 19 Spalten. Komischerweise ist die letzte Spalte immer leer.
Warum heißt das Argument wohl sep(erator)?
Du mußt den fragen, der diese Dateien erzeugt, warum er eine leere Spalte an jede Zeile anhängt.

Re: Wetterdaten: Datei schreiben nicht möglich

Verfasst: Dienstag 27. Februar 2024, 03:12
von snafu
@Julu:
Denk dir das Semikolon bzw. generell den Spaltentrenner nicht als Ende einer Spalte. Es dient stattdessen als Anweisung, die nächste Spalte einzuleiten. Wenn nach dem letzten Semikolon nichts mehr kommt, dann ist dies eine neue Spalte ohne Inhalt.

So ähnlich ist es auch bei "spam;".split(";"). Da wurde der leere String für die Darstellung von "kein Inhalt" gewählt. Es kommt demnach ['spam', ''] dort heraus. Kann man doof finden, ist aber eben so definiert (nicht nur in Python).

Re: Wetterdaten: Datei schreiben nicht möglich

Verfasst: Dienstag 27. Februar 2024, 10:10
von Julu
Sirius3 hat geschrieben: Montag 26. Februar 2024, 21:49...Warum heißt das Argument wohl sep(erator)?...
snafu hat geschrieben: Dienstag 27. Februar 2024, 03:12@Julu:Denk dir das Semikolon bzw. generell den Spaltentrenner nicht als Ende einer Spalte...
O. k., jetzt hab ich's begriffen, besten Dank.