我有一个熊猫数据框,里面有电表读数(累积)。df DatetimeIndex dtype=‘datetime64 df’。当我加载.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提前谢谢你。
发布于 2017-10-30 20:22:44
给你们所有人一个很大的道歉。我得到的.csv和我正在检查的原始.csv不是同一个文件。数据不知何故被破坏了……到目前为止我一直在碰壁,df.resample('D').sum()没有问题。
再次抱歉,请考虑线程排序。
https://stackoverflow.com/questions/47012306
复制相似问题