for循环不会迭代到最后一项

时间:2016-11-30 15:59:21

标签: python pandas for-loop return

我的这个功能有问题

def morethan120(list1):
    n = 0
    y = pd.to_datetime("0:00:00")
    for i in list1:
        if y < pd.to_datetime("2:00:00"):
            z = y
            y = y + i
            n = n + 1
        else:
            n = n - 1
            print(n)
            print(z)
            return

for m in late120_list:
    lateid = time_table[time_table["AC-No."] == m]
    lateid = lateid[lateid["Late"].notnull()]
    print(m)
    morethan120(lateid["Late"])

我不明白为什么m会迭代到最后。它只是停止而不是print(n)print(z),就像它对列表的其余部分所做的那样。

这是结果

5 # m value
4 # n value
2016-11-30 01:49:00 # z value
6 # m value
8 # n value
2016-11-30 01:50:00 # z value
7
0
2016-11-30 00:00:00
10 # m value and it stop at here 

此代码的基础是在到达2:00:00之前获取时间戳并获取该时间戳的索引

这是lateid dataframe

     AC-No.     Late
97       5 00:10:00
98       5 00:16:00
99       5 00:04:00
100      6 00:08:00
101      6 00:10:00
102      6 00:13:00
105      7 00:35:00
106      7 00:22:00
107      10 00:38:00

这是late20_list

[5, 6, 7, 10]

0 个答案:

没有答案