首页 > 解决方案 > 为什么if条件在256之后得到满足?

问题描述

背景:当有退出日期时,我试图创建一个 0s 的 Y 轴,当有投资和退出日期时创建一个 1s,当两者都丢失或其他任何东西时创建一个 -1。我想查看 88k 行的更新。

这是我的代码:

for i in range(0,len(merged_port_cos_firms)):
    inv = merged_port_cos_firms.iloc[i]['Investment_Date']
    exi = merged_port_cos_firms.iloc[i]['Exit_Date']
    print(i, len(exits), inv, exi, end = ' | ')
    if not pd.isnull(exi):
        exits.append(1)
        print('Exited')
    elif not pd.isnull(inv):
        exits.append(0)
        print('Not Exited')
    else:
        exits.append(-1)
        print('Missing')
    if i  is not len(exits)-1:
        print('Mismatch : ',i,len(exits)-1)
#         break

输出在 257 左右:

251 251 NaT NaT | Missing
252 252 NaT NaT | Missing
253 253 NaT NaT | Missing
254 254 NaT 2002-11-01 00:00:00 | Exited
255 255 NaT NaT | Missing
256 256 NaT NaT | Missing
257 257 NaT NaT | Missing
Mismatch :  257 257
258 258 NaT NaT | Missing
Mismatch :  258 258 

所有其他 if 块在此之前执行多次。我必须获得exits88k 行,所以我正在不间断地运行代码。它总是在 257 之后进入最后一个 if 块。我不明白为什么会这样。没有任何意义。

标签: python

解决方案


推荐阅读