У меня есть код, который выполняет сдвиг скользящего окна, он работает, когда я использую его вне функции, но когда я помещаю его в функцию, он заполняет только первую строку, а затем перестает работать.
def slidefunc (data,window,step):
minmz = data['mass'].min()
maxmz = data['mass'].max()
bins = []
minbin = minmz+window
maxbin = maxmz-window
for i in np.arange(minbin,maxbin,step):
bins.append(i)
m = len(bins)-1
i = 0
j = 0
first = 0
n = 0
accum = 0
mzbins = pd.DataFrame(bins, columns= ['bins'])
mzbins['intensity'] = np.nan
mzbins['samples'] = np.nan
while (j<=m):
lower = bins[j]- window
upper = bins[j]+ window
while data.iat[i,0]<= lower:
i = i + 1
first = i
while data.iat[i,0]< upper:
accum = accum + data.iat[i,1]
n = n + 1
i = i + 1
if (n>0):
mzbins.iat[j,1] = accum/n
mzbins.iat[j,2] = n
#a = accum/n
#b = n
accum = 0
n = 0
j = j + 1
i = first
# Jump empty regions
#empty = mzbins.iat[j,0]+window
#while j<m and data.iat[i,0] > empty :
# j = j + 1
return mzbins