我有一些10Hz GPS数据,从中我添加了一些滚动的.sum()列,例如下面的内容
resultsQ1['5s']=resultsQ1['OdChange'].rolling(window=50,axis=0).sum()
然后我在新列中标识了最大值,而从另一个列进行分组,例如下面
combinedQ15s = resultsQ1.groupby('Stat5s')['5s'].max()/5
我现在要做的是将构成.max()值的50个值作为新的df返回
这可能吗?
尝试:
res=resultsQ1.merge(resultsQ1.groupby('Stat5s')['5s'].max(), right_index=True, left_on="Stat5s", suffixes=["", "_max"])
res=res.loc[res["5s_max"]==res["5s"]]
#so you can differentiate the final result from records that make it up:
res["cat"]="total"+res.assign(dummy=1)["dummy"].cumsum().map(str)
res2=res
for el in res.index:
order=list(df.index).index(el)
dftemp=resultsQ1.iloc[order-49:order].copy()
dftemp["cat"]=res.loc[el, "cat"].replace("total", "makeup")
res2=res2.append(dftemp, ignore_index=True)
([res2
是您的输出)一些参考:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html