我有一个带电表读数的熊猫数据框(累计)。 df DatetimeIndex dtype ='datetime64 [ns]'。当我加载.csv文件时,数据帧不包含任何NaN值。我需要计算每月和每日产生的能量。
要计算每月生成,我使用dfmonth = df.resample('M')。sum()。这很好用。 为了计算每日生成,我想使用:dfday = df.resample('D')。sum()。哪部分工作,但对于某些索引日期(原始文件中没有数据丢失)返回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 :(得分:0)
向大家道歉。我得到的.csv和我正在检查的原始.csv不是同一个文件。数据以某种方式被破坏.... 到目前为止,我一直在撞墙,df.resample没有问题(' D')。sum()
再次抱歉,请考虑线程排序。