【发布时间】:2021-10-28 14:02:00
【问题描述】:
我有一个包含许多周期的大型数据帧,每个周期内部有 2 个最大峰值,我需要将其捕获到另一个数据帧中。
我创建了一个模拟我看到的数据的示例数据框:
import pandas as pd
data = {'Cycle':[1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3], 'Pressure':[100,110,140,180,185,160,120,110,189,183,103,115,140,180,200,162,125,110,196,183,100,110,140,180,185,160,120,180,201,190]}
df = pd.DataFrame(data)
正如您在每个周期中看到的那样,有两个最大值,但我遇到问题的部分是第二个峰值通常高于第一个峰值,因此在技术上可能存在比其他峰值更高的数字行最大值周期。结果应如下所示:
data2 = {'Cycle':[1,1,2,2,3,3], 'Peak Maxs': [185,189,200,196,185,201]}
df2= pd.DataFrame(data2)
我尝试了几种方法,包括每个周期 .nlargest(2),但问题是,由于其中一个峰值通常更高,它会拉出数据中的第二大数字,而这不一定是另一个峰值。
感谢您的帮助。
【问题讨论】:
标签: python pandas dataframe max