1
私はpandasとnumpyの新人で、測定値を等間隔の時系列に集約しようとしています。入力データは等間隔ではなく、次のようになります。今、私がしようとしているが、MySQLのデータを読み取り、その後、等間隔時系列にそれをリサンプリングされなぜpandasはsqlデータのリサンプリング用にNaNを作成していますか?
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
... ...
。
印刷し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)
:私が期待したものではありません本当に
[104301 rows x 1 columns]
value
0 NaN
1 NaN
... ...
を:/
事前に感謝します!
EdChumさんのコメントへの更新
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
なし
'は何ですか値列のdtype?あなたは 'data.info()'の出力を投稿できますか? – EdChum
'data.resample( '1min')とは何ですか?ここでの問題は、空のdfに互換性のないインデックスを割り当てて、datetimeindexが最初はインデックスが 'int64Index'のようにコピーされない理由です。aggregate = pandas.DataFrame({ 'value':data.resample( '1min')。mean()}) ' – EdChum
あなたはまったく正しいです!ありがとう!それは空のdfへの割り当てです。 'print(data.resample( '1min')。mean()'が完璧に動作します。 – Fmeuer