重新索引组以添加缺少的行

时间:2019-02-05 13:58:28

标签: pandas reindex

我正在尝试重新索引组以扩展缺少值的数据框。与时间索引的重采样类似,我正在尝试针对普通整数值实现这一点。

因此,对于属于某个组密钥的组(在我的情况下为proID),应确定最大存在的整数值(指定重采样过程的终点)。该整数值的缺失值将扩展该组(我正在尝试通过重新索引实现它)。

我有一个数据框,每个proID都有很多行,整数bin值的范围可以从0到100,并且有些列没有意义。基本上,如果某些数据丢失(类似于重新采样时间索引),则应填充bin值。

def rsmpint(df):
    mx = df.bin.max() #identify maximal existing bin value in dataframe (group)
    no = (mx * 20 / 100).astype(np.int64) + 1 #calculate number of bin values
    idx = pd.Index(np.linspace(0,mx,no), name='bin') # define full bin-Index for df (group)
    df.set_index('bin').reindex(idx).ffill().reset_index(drop=True, inplace=True)
    return df


DF.groupby('proID').apply(rsmpint)

假设特定的proID当前有5个bin值[0、15、20、40、65](即原始proID组的5行)。输出应为扩展的proID组,其bin值[0、5、10、15、20、25、30、35、40、45、50、60、65]的“无意义”列的内容使用填充填充()。

0 个答案:

没有答案