我目前正在进行时间序列分析(只有EDA,没有预测)。我想通过查看完整的时间范围来计算一个特征的最大增加/减少。我可以通过使用pd.diff()按月进行此操作,但也想检查是否有超过一个月的趋势。因此,我尝试了像ruptures这样的库来检测数据中的变化点,但不确定它们是否与我最大的减少/增加点相同。
pd.diff()
amrnrhlw1#
假设很多,因为正如评论中提到的,需要更多的细节。我假设你的一个功能看起来有点像这样,并且每个月都有一个值(采样率):
time_series = [100, 110, 90, 120, 80, 130]
对我来说,剩下的听起来像是一个重新采样的问题,你需要决定你想把多少个月聚合成一个值(例如,每年12次)。然后,您可以继续进行重新采样,并从邻居中近似缺失值(如有必要)。
# Resample based on the specified months per value resampled_df = df.resample(f'{months_per_value}').mean() # Interpolate missing values to approximate the time series resampled_df.interpolate(inplace=True) return resampled_df['value'].tolist()
然后,可以在函数中使用resampled_df,就像您习惯于使用当前时间序列数据一样。
1条答案
按热度按时间amrnrhlw1#
假设很多,因为正如评论中提到的,需要更多的细节。
我假设你的一个功能看起来有点像这样,并且每个月都有一个值(采样率):
对我来说,剩下的听起来像是一个重新采样的问题,你需要决定你想把多少个月聚合成一个值(例如,每年12次)。
然后,您可以继续进行重新采样,并从邻居中近似缺失值(如有必要)。
然后,可以在函数中使用resampled_df,就像您习惯于使用当前时间序列数据一样。