【发布时间】:2021-12-06 02:05:25
【问题描述】:
我正在尝试清除 Pandas 数据框中时间序列数据中的数据峰值。
value = 5000
for index, row in gauteng_df.iterrows():
if index == gauteng_df.shape[0]-1:
break
upper, lower = row['Admissions to Date'] + value, row['Admissions to Date'] - value
a = gauteng_df.iloc[index+1]['Admissions to Date']
if a > upper or a < lower:
a = (gauteng_df.iloc[index-1]['Admissions to Date'] + gauteng_df.iloc[index+1]['Admissions to Date'])/2
gauteng_df.iloc[index]['Admissions to Date'] = a
我尝试引用后续数据点。如果当前数据点超出后续数据点的区间(即点+-值),则当前数据点将替换为前一个数据点和下一个数据点的平均值。不幸的是,当我尝试绘制新图表时,没有反映任何变化,并且尖峰仍然存在。
我将不胜感激任何帮助!此外,df.iterrows() 可能不是最有效的方法,所以如果能提供更好的方法来替换尖峰值,我将不胜感激。
【问题讨论】: