我有两个遍历所有数据帧的for循环。目标是计算同一条线上2个点之间的斜率,直到斜率达到2或更高。然后它在下一行继续。它是这样的:
step = 0.3
#debut = []
for n in range (ncol-1):
for m in range (nline):
slope = (df.iat[m, (n + 1)] - df.iat[m, n])/step
if slope < 2:
n = n + 1
else:
#tuple(debut)
debut = list(n)
m = m + 1
n = 0
if m > (nline):
break
我的数据框是带有标题和行索引的基本数据。
我想在每行达到2或更高的斜率时跟踪'n'的值。我尝试了debut = list(n)
,但没有成功。我想要的列表如下:
1 'column 1 header'
2 'column 2 header'
3 'column 3 header'
...
答案 0 :(得分:0)
按照@Nullman的建议,使用append将列号添加到列表中是正确的方法。但是,您的代码似乎还有其他问题。您在for循环中使用n和m作为迭代器(这将自动增加它们),并手动增加/重置它们。循环的顺序也与您的描述所适用的顺序相反(依次遍历行,列,列,行)。
step = 0.3
debut = []
for m in range (nline):
for n in range (ncol-1)
slope = (df.iat[m, (n + 1)] - df.iat[m, n])/step
if slope >= 2:
debut.append(n)
break