使用总和填充值,使用另一个数据帧的索引重新索引数据帧

Reindex a dataframe with the index of an other dataframe using the sum to fill the values

首先用常规索引创建数据帧,这是我想使用 df1 的索引重新采样的 df

df0 = pd.DataFrame(index=pd.date_range(start='2018-10-31 00:17:24', periods=50,freq='1s'))

我不知道如何创建一个具有不规则索引的 df,所以我创建了一个新的数据框(我想使用的索引)来重新采样 df0

df1 = pd.DataFrame(index=pd.date_range(start='2018-10-31 00:17:24', periods=50,freq='20s'))

用于最小可重现示例。创建一个值介于 0 和 1 之间的列

df0['dat'] = np.random.rand(len(df0))

我想找到 dat 列的值大于 0.5 的行

df0['target'] = 0
df0.loc[(df0['dat'] >= 0.5), 'target'] = 1

然后我想使用 df1 的索引重新索引 df0,但是名为 df0['target'] 的列的每一行 应该具有 window

中的值的总和

我试过的是:

new_index     = df1.index 
df_new        = df0.reindex(df0.index.union(new_index)).interpolate(method='linear').reindex(new_index).sum() 

但是这个 sum() 搞砸了一切

IIUC:

尝试:

df_new=df0.reindex(df1.index.union(df0.index)).interpolate(method='linear').reset_index()

最后利用pd.Grouper()groupby():

out=df_new.groupby(pd.Grouper(key='index',freq='1 min')).sum()