2017-10-30 4 views
0

私は電気メーターの読み取り値(累積値)を持つパンダデータフレームを持っています。 df DatetimeIndex dtype = 'datetime64 [ns]'です。 .csvファイルをロードすると、データフレームにNaN値が含まれません。私は毎月のエネルギーと毎日のエネルギーを計算する必要があります。pandas df.resample( 'D')。sum()がNaNを返します

月次世代を計算するには、dfmonth = df.resample( 'M')。sum()を使用します。これは正常に動作します。 毎日の世代を計算するには、私はdfday = df.resample( 'D')。sum()を使用すると考えました。部分的に機能しますが、一部のインデックス日付(rawファイルに欠落したデータはありません)ではNaNを返します。

下記のコードをご覧ください。誰がなぜこれが起こるのか知っていますか?任意の提案されたソリューション?

df = pd.read_csv(file) 
df = df.set_index(pd.DatetimeIndex(df['Reading Timestamp'])) 
df=df.rename(columns = {'Energy kWh':'meter', 'Instantaneous Power kW (approx)': 'kW'}) 
df.drop(df.columns[:10], axis=1, inplace=True) #Delete columns I don't need. 
df['kWh'] = df['meter'].sub(df['meter'].shift()) 
dfmonth = df.resample('M').sum() #This works OK calculating kWh. dfmonth does not contain any NaN. 
dfday = df.resample('D').sum() # This returns a total of 8 NaN out of 596 sampled points. Original df has 27929 DatetimeIndex rows 

ありがとうございます。

+0

あなたのインデックスに日付がありませんか?例えばおそらく週末の日付のエントリがありませんか? – EdChum

+0

いいえ、私は日付が不足していません。それが役に立ったら.csvを添付することができます – Jab

+0

データを再現するために生データとコードを添付してください。私の要点は特定の日の日付が欠落していますか?それらの日付を含むインデックスエントリがないため、あなたは 'NaN'エントリを見ていますか?これはおそらく起こっていることです – EdChum

答えて

0

あなたに大きな謝罪をします。私が与えられた.csvファイルと私がチェックしていたraw .csvファイルは同じファイルではありません。データが何らかの形で破損していた.... df.resample( 'D')に問題はありません。今まで壁に向かって頭を叩いていましたが、sum()

ソートされています。

関連する問題