2016-08-10 3 views
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 

なし

+1

'は何ですか値列のdtype?あなたは 'data.info()'の出力を投稿できますか? – EdChum

+1

'data.resample( '1min')とは何ですか?ここでの問題は、空のdfに互換性のないインデックスを割り当てて、datetimeindexが最初はインデックスが 'int64Index'のようにコピーされない理由です。aggregate = pandas.DataFrame({ 'value':data.resample( '1min')。mean()}) ' – EdChum

+0

あなたはまったく正しいです!ありがとう!それは空のdfへの割り当てです。 'print(data.resample( '1min')。mean()'が完璧に動作します。 – Fmeuer

答えて

1

ここでの問題は、あなたが、ときに互換性のないインデックスを使用してデータを新しい列を追加しようとしているということですインデックスタイプが最初にobject dtypeになる空のdfを作成すると、インデックスがdatetimeIndexのデータが追加されるので、すべての行について210。

あなたはDFのctorにデータとインデックスを渡すと、これは動作します:

In [9]: 
resampled = df.resample('1min').mean() 
empty_df = pd.DataFrame({'value':resampled}, index = resampled.index) 
empty_df 

Out[9]: 
         value 
timestamp     
2016-08-09 11:55:00 1779.87 

あなたはint型のインデックスをしたいなら、あなたが行うことができます:

In [17]: 
resampled = df.resample('1min').mean() 
empty_df = pd.DataFrame() 
empty_df['value'] = pd.Series(resampled, index=np.arange(len(resampled.index))) 
empty_df 

Out[17]: 
    value 
0 1779.87 
関連する問題