对每个pandas dateindex行进行上传,包括组

时间:2018-04-16 08:30:17

标签: python pandas dataframe

我的数据看起来像这样:

ID1  ID2 Date        Values 
1    1   2018-01-05  75
1    1   2018-01-06  83
1    1   2018-01-07  17
1    1   2018-01-08  15
1    2   2018-02-01  85
1    2   2018-02-02  98
2    1   2018-02-15  54
2    1   2018-02-16  17
2    1   2018-02-17  83
2    1   2018-02-18  94
2    2   2017-12-18  16
2    2   2017-12-19  84
2    2   2017-12-20  47
2    2   2017-12-21  28
2    2   2017-12-22  38

所有操作必须在['ID1', 'ID2']组内完成 我想要做的是以一种方式对数据帧进行上采样,以便最终得到每个'Date'索引的子数据帧,其中包括所有以前的日期,包括来自它的当前日期{{1} }组。生成的数据框应如下所示:

['ID1', 'ID2']

我正在使用的数据帧非常大(约2000万行),因此我希望避免遍历每一行。

是否可以使用函数或pandas函数组合(如resample / apply / reindex)来实现我的需求?

1 个答案:

答案 0 :(得分:0)

假设ID1和ID2是您的原始索引。您应该重置索引,将Date设置为Index,将索引重置为[ID1,ID2]:

 df = df.reset_index().set_index(['Date']).resample('d').ffill().reset_index().set_index(['ID1','ID2'])

如果您的'日期'字段是字符串,那么您应该在重新采样该字段之前将其转换为日期时间。您可以使用以下内容:

df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%Y')