ここresample()
はあなたdtypes
が正しいと仮定して、提供したデータを正常に動作することをデモンストレーションです。それはまさにあなたの問題に対する答えではありませんが、一種の健全性チェックの役割を果たすかもしれません。
まず、5min
間隔で2ヶ月の期間のサンプルデータを生成します。
import pandas as pd
Date = pd.date_range("2016-05-01", "2016-07-01", freq="5min", name='Date')
Puissance = {'Puissance': np.zeros(len(Date), dtype=int)}
df = pd.DataFrame(Puissance, index=Date)
df.head()
Puissance
Date
2016-05-01 00:00:00 0
2016-05-01 00:05:00 0
2016-05-01 00:10:00 0
2016-05-01 00:15:00 0
2016-05-01 00:20:00 0
df.shape # (17569, 1)
df.index.dtype # datetime64[ns]
df.Puissance.dtype # int64
は今10min
間隔にリサンプリング:
resampled = df.Puissance.resample('10min').mean()
resampled.shape # (8785,)
注:df.resample('10min').mean()
もここで同じ結果が得られます。
resampled.head()
Date
2016-05-01 00:00:00 0
2016-05-01 00:10:00 0
2016-05-01 00:20:00 0
2016-05-01 00:30:00 0
2016-05-01 00:40:00 0
Freq: 10T, Name: Puissance, dtype: int64
resampled.tail()
Date
2016-06-30 23:20:00 0
2016-06-30 23:30:00 0
2016-06-30 23:40:00 0
2016-06-30 23:50:00 0
2016-07-01 00:00:00 0
Freq: 10T, Name: Puissance, dtype: int64
リサンプリングは、期待通りに機能します。
これは、dtype
宣言のどこかに、またはhead()
出力に表示されていない観測の形式の問題があることを示しています。
Puissance
の値が整数(0
)から始まり、浮動小数点数(0.0
)として再サンプリングされている可能性があります。 Puissance
の値がすべてゼロの整数である場合、mean
の出力dtype
も上記のようにint64
になります。 (mean()
は平均値がすべて同じでない場合は通常dtype
float64
を返します)あなたのサンプルデータは実際の問題を代表するものではありません。もしそうなら、より代表的な例であなたの投稿を更新することを検討してください。
なぜPuissance列で再サンプリングしますか? – Veliko
ご迷惑をおかけして申し訳ございません。 dpvis = dpvi.resample( '10min')。mean() –