我有一个看起来像这样的表(注意:TransactionDate是索引):
GroupByFld | Amount
TransactionDate
2014-03-31 | 1 | -0.000
2014-04-30 | 1 | nan
2014-05-31 | 1 | nan
2014-06-30 | 1 | -122129.805
2014-07-31 | 1 | nan
2014-08-31 | 1 | nan
2014-09-30 | 1 | -100553.145
我正在插值,我得到了:
GroupByFld | Amount
TransactionDate
2014-03-31 | 1 | -0.000
2014-04-30 | 1 | -73277.883
2014-05-31 | 1 | -36638.942
2014-06-30 | 1 | -122129.805
2014-07-31 | 1 | -12212.981
2014-08-31 | 1 | 326146.968
2014-09-30 | 1 | -100553.145
我用于执行此操作的代码如下。请注意,因为我的GroupByFld同时包含1和2,所以我对其进行了筛选,以便可以将插值分别应用于每个对象。出于调试目的,我将df限制为仅包含1,但是仍然遇到相同的问题。
for i in range(len(c['GroupByFld'].unique())): # This will break if there are multiple group by criteria
mask = c.loc[:,'GroupByFld']==c['GroupByFld'].unique()[i]
c[mask]=c[mask].interpolate(method='linear')
答案 0 :(得分:0)
好的答案在某些人看来似乎很明显,但实际上据我所见,并没有任何记录。
我假设只需将索引设置为日期,它就会自动知道如何对数据进行排序。相反,我必须首先使用以下命令强制其按正确的顺序排序:
c.sort_index(inplace=True)