Ich bin neu in Pandas und numpy und versuche, Messwerte zu einer gleich beabstandeten Zeitreihe zu aggregieren. Die Eingangsdaten werden nicht mit gleichem Abstand und wie folgt aussieht:Warum erstellen Pandas NaN für das Resampling von SQL-Daten?
timestamp value
2016-08-09 11:55:26 1779.510
2016-08-09 11:55:26 1792.310
2016-08-09 11:55:27 1796.900
2016-08-09 11:55:28 1749.760
2016-08-09 11:55:29 1780.870
... ...
Nun, was ich versuche, die Daten aus MySQL liest und dann das Resampling zu gleichen Abständen Zeitreihen.
query = "SELECT timestamp, value FROM iren2.data WHERE data.timestamp >= now() - INTERVAL {0} DAY " \
"AND data_node_id = {1} ".format(1, 307)
data = pandas.read_sql_query(query, engine, parse_dates=True, index_col='timestamp')
aggregation = pandas.DataFrame()
aggregation['value'] = data.resample('1min').mean()
print(aggregation)
die druckt:
[104301 rows x 1 columns]
value
0 NaN
1 NaN
... ...
Das ist nicht wirklich das, was ich erwartet hatte:/
Vielen Dank im Voraus!
Update EdChum Kommentar
data.info():
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 106661 entries, 2016-08-09 13:06:13 to 2016-08-10 13:06:13
Data columns (total 1 columns):
value 106661 non-null float64
dtypes: float64(1)
memory usage: 1.6 MB
Keine
Was ist der ' dtype' von Wertspalte? Kannst du die Ausgabe von 'data.info()' posten? – EdChum
Was bedeutet 'data.resample ('1min') mean()' show? Das Problem hier könnte sein, dass Sie ein leeres df mit einem inkompatiblen Index zuweisen, weshalb Ihr datetimeindex nicht kopiert wird, da der Index anfänglich ein 'int64Index' ist, zum Beispiel könnten Sie' aggregation = pandas.DataFrame ({ 'Wert': data.resample ('1min'). mean()}) ' – EdChum
Ja, du hast völlig Recht !! Vielen Dank! Es ist die Zuordnung zu einem leeren df. 'print (data.resample ('1min'). Mean()' funktioniert einwandfrei. – Fmeuer