在for循环中列出增量

时间:2019-02-21 13:47:33

标签: python pandas list for-loop increment

我有两个遍历所有数据帧的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' 
...

1 个答案:

答案 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