python - 当我在 python 中输入一个函数时,我的代码不起作用
问题描述
我有一个执行滑动窗口分箱的代码,当我在函数外部使用它时它可以工作,但是当我将它放在函数中时它只填充第一行然后停止工作。
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
解决方案
看起来像最后一行
return mzbins
缩进太多,应该在while
循环之外,即
return mzbins
推荐阅读
- windows - 如何在powershell中仅列打印列表的某些行部分?
- scala - 提交作业时,spark-submit 中使用的参数是否有特定顺序?
- java - 如何通过 JSON 在地图上添加这些位置?
- django-rest-framework - 权限类 IsAuthenticated 在 DRF 中不起作用
- php - 我应该使用 Put、Patch 和 Delete 吗?我正在阅读一些东西,这让我想知道使用它们是否是传统的
- angular - 匹配两个日期 - TypeScript
- json - 有没有办法通过转换类型在 Go 中解码 JSON?
- python - 用 scrapy 组织 csv 导出
- jquery - 一页上的多个添加/删除行
- unity3d - 从库存中拖动 2D 图像并将其作为 3d 对象放置