pandas填充日期间隙并用功能覆盖

时间:2014-05-07 06:18:34

标签: pandas gaps-in-data

我有一个包含2组的大数据框:得分和日。 是否有一个简单的可能性,大熊猫工具用以前的值的平均值(替代ewma等)来填补空白和缺失的分数。

首先,我通过分组覆盖分数,然后叠加 修改了分组df。

 dfg = df.groupby(['g1','g2'])
 for name , group in dfg:
    print group
    break
 ix               g1           g2   score      day
 4                19           24    4.150513  2014-02-12
 5                19           24    6.986235  2014-02-13
 6                19           24    9.634231  2014-02-14
 7                19           24    1.818548  2014-02-15
 8                19           24    1.699897  2014-03-02
 9                19           24    2.128781  2014-03-25
 10               19           24    1.720297  2014-03-26
 14               19           24    2.079877  2014-03-30

1 个答案:

答案 0 :(得分:1)

我从来没有这样做过,但是看一下手册给了我以下作为一个起点的想法:

df = pd.DataFrame([['2011-01-01', '1'], ['2011-01-03', '2']], columns=['day', 'score']).set_index('day')
df.index = df.index.to_datetime()
rng = pd.date_range('1/1/2011', periods=12, freq='d')
df2 = pd.DataFrame(pd.DataFrame(columns=['day'], index=rng))

# now, for those that we actually have data, put it in:
df2['score'] = df['score']

最后的结果是:

               score
2011-01-01     1
2011-01-02   NaN
2011-01-03     2
2011-01-04   NaN
2011-01-05   NaN
2011-01-06   NaN
2011-01-07   NaN
2011-01-08   NaN
2011-01-09   NaN
2011-01-10   NaN
2011-01-11   NaN
2011-01-12   NaN

现在,您可以按docs中所述的NaN值应用插值方法。