私は電気メーターの読み取り値(累積値)を持つパンダデータフレームを持っています。 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
ありがとうございます。
あなたのインデックスに日付がありませんか?例えばおそらく週末の日付のエントリがありませんか? – EdChum
いいえ、私は日付が不足していません。それが役に立ったら.csvを添付することができます – Jab
データを再現するために生データとコードを添付してください。私の要点は特定の日の日付が欠落していますか?それらの日付を含むインデックスエントリがないため、あなたは 'NaN'エントリを見ていますか?これはおそらく起こっていることです – EdChum