.max()中的值作为Python中的新数据帧

.max()中的值作为Python中的新数据帧,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一些10Hz的GPS数据,我从中添加了一些rolling.sum()列,例如下面的 resultsQ1['5s']=resultsQ1['OdChange'].rolling(window=50,axis=0).sum() combinedQ15s = resultsQ1.groupby('Stat5s')['5s'].max()/5 然后,我从另一列(如下面)分组时,在新列中确定了最大值 resultsQ1['5s']=resultsQ1['OdChange'].rolling(win

我有一些10Hz的GPS数据,我从中添加了一些rolling.sum()列,例如下面的

resultsQ1['5s']=resultsQ1['OdChange'].rolling(window=50,axis=0).sum()
combinedQ15s = resultsQ1.groupby('Stat5s')['5s'].max()/5
然后,我从另一列(如下面)分组时,在新列中确定了最大值

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\u index=True,left\u on=“Stat5s”,后缀=[“”,“\u max”])
res=res.loc[res[“5s_max”]==res[“5s”]]
#因此,您可以将最终结果与组成结果的记录区分开来:
res[“cat”]=“total”+res.assign(dummy=1)[“dummy”].cumsum().map(str)
res2=res.copy()
对于分辨率索引中的el:
顺序=列表(df.index).索引(el)
dftemp=resultsQ1.iloc[order-49:order].copy()
dftemp[“类别”]=资源位置[el,“类别”]。替换(“总计”、“补充”)
res2=res2.append(dftemp,ignore_index=True,sort=True)
res2
是您的输出)
一些参考:

我现在想做的是将构成.max()值的值作为新的df返回。我不确定我是否理解你的意思,你能扩展一下吗?我可以试试。我对这一切都不熟悉。在我的大型数据集中,有一列提供了50个值的总和,这些值来自滚动窗口上的另一列。然后,我有一个公式来确定该列的最大值,我现在想要一个新的df,它表示构成上述最大值的50个值,这样我就可以将它们提取到csvThanks中,但是从我所看到的,它只是返回数据帧中结果出现的位置。也许我的解释不好。我想要一个包含50个值的新df,这50个值构成了.max()值。如果我理解的话,我不确定这50个值是什么,以及它们在什么意义上“构成”了max?resultsQ1['5s']=resultsQ1['OdChange']。滚动(窗口=50,轴=0)。sum()提供了50个值的总和。最大值在新列中找到最大值,但除此之外,我还想将50个值标识为一个新的DF,但您想在列表中聚合它们吗?您希望如何查看此50条记录窗口?我希望能够将50条记录打印到excel文件中。