У меня есть набор данных, через который я запускаю функцию фильтра, чтобы уменьшить шум в данных.После того, как каждый столбец данных прошел через фильтр, я бы хотел, чтобы эти данные были назначены пустому фрейму данных, который был вызван (отфильтрован).Вот что я пробовал до сих пор:
- Я изначально пытался использовать только Filter.assign (e = [xhat]), но мой фрейм данных вернулся бы пустым.
- У меня естьсделал отфильтрованный пустой список использованным filter.append, но возвращаемые массивы не соответствуют исходным наблюдениям строк
- Последней попыткой была попытка использовать другой цикл for для Filter.assign, чтобы увидеть, будет ли это работать, ноЯ все еще получаю пустой фрейм данных.
'
# by Andrew D. Straw
import numpy as np
import matplotlib.pyplot as plt
# dataframe created to hold filtered data
filtered = pd.DataFrame()
# intial parameters
for column in data:
n_iter = len(data.index) #number of iterations equal to sample numbers
sz = (n_iter,) # size of array
z = data[column] # observations
Q = 1e-5 # process variance
# allocate space for arrays
xhat=np.zeros(sz) # a posteri estimate of x
P=np.zeros(sz) # a posteri error estimate
xhatminus=np.zeros(sz) # a priori estimate of x
Pminus=np.zeros(sz) # a priori error estimate
K=np.zeros(sz) # gain or blending factor
R = 1.0**2 # estimate of measurement variance, change to see effect
# intial guesses
xhat[0] = z[0]
P[0] = 1.0
for k in range(1,n_iter):
# time update
xhatminus[k] = xhat[k-1]
Pminus[k] = P[k-1]+Q
# measurement update
K[k] = Pminus[k]/( Pminus[k]+R )
xhat[k] = xhatminus[k]+K[k]*(z[k]-xhatminus[k])
P[k] = (1-K[k])*Pminus[k]
# add new data to created dataframe
for i in xhat:
filtered.assign(e=i)
filtered.info()
<class 'pandas.core.frame.DataFrame'>
Index: 0 entries
Empty DataFrame