我有一个数据帧,其中包含从2002
到2019
,2 columns
的每日数据,其中一个是ts
,由所有dates
和fitted.values
由相应日期的ndvi数据组成。
我正在尝试使用scipy.signal.find_peaks
,pandas.rolling()
和pandas.apply
函数在滚动窗口中查找峰。即目标是采用可能长达365天的滚动窗口,并将元组内的峰值索引附加到列表中。多年2002
,2003
,2004
,...我会[(peak1),(peak2,peak3),(peak4),....]
。因此,2003
年的相应峰值将是peak2
和peak3
我已经编写了以下代码,但不确定如何将系列(df['fitted.values])
传递给apply函数。
此外,我不确定首先是否正确。有什么想法吗?
peak_list = []
def peaks (x,series_values):
global peak_list
peak_list.append(tuple(find_peaks(series_values)[0]))
return (peak_list)
df['fitted.values'].rolling(window = 365).apply(lambda x: peaks(df['fitted.values]))