我的for loop赢了';t在python中迭代字符串

我的for loop赢了';t在python中迭代字符串,python,for-loop,Python,For Loop,我必须检查股票期权缺少哪些日期,我想用for循环来完成这项工作。然而 “'(slice(0,155,None),slice(None,None,None))”是无效密钥 显示为错误,我不知道为什么 首先,它是一个datetime64[ns]类型,我已经尝试将其转换为字符串。然而,这似乎没有帮助。这是我的密码: def days(data, alldays): days = np.zeros((len(data),1)) companies = ["AAPL", "AXP", "BA", "CAT

我必须检查股票期权缺少哪些日期,我想用for循环来完成这项工作。然而

“'(slice(0,155,None),slice(None,None,None))”是无效密钥

显示为错误,我不知道为什么

首先,它是一个
datetime64[ns]
类型,我已经尝试将其转换为字符串。然而,这似乎没有帮助。这是我的密码:

def days(data, alldays):
days = np.zeros((len(data),1))
companies = ["AAPL", "AXP", "BA", "CAT", "CSCO", "CVX", "DIS", "DJX", "GS", "HD", "IBM", "INTC", "JNJ", \
    "JPM", "KO", "MCD", "MMM", "MRK", "MSFT", "NKE", "PFE", "PG", "TRV", "UNH", "UTX", "V", "VZ", "WBA", "WMT", "XOM"]
d = {}
for i, firm in enumerate(data):
    firms = data[i]
    days[i] = len(firms.date.unique())
    firmdays = firms.date.unique()
    counter = 0
    if days[i] < 3730:
        print(firms.ticker.unique(), len(firms), days[i])
    elif days[i] < len(alldays) and days[i]>=3730:
        d[companies[i]] = np.zeros((582348,6))
        breakpoint()
        for j in range(3733):
            breakpoint()
            if alldays[j] not in  firmdays:
                breakpoint()
                print(firms.ticker.unique(), alldays[j])
                for k, data in enumerate(np.zeros((582348,6))):
                    d[companies[i]][k:k+155,:] = firms[k-156 - counter*156:k-1- 156*counter,:]
                counter = counter +1
            else:
                for k, data in enumerate(np.zeros((582348,6))):
                    d[companies[i]][k:k+155,:] = firms[k- counter*156:k+155 - 156*counter,:]
    print(firms.ticker.unique(), len(firms), days[i])
return days

从错误的角度来看,在该行上使用切片表示法(部分是before=sign)的问题似乎更多:

d[companies[i]][k:k+155,:] = firms[k- counter*156,:]

不确定你想达到什么目的,但看看这篇帖子:

alldays[j]的价值是什么?它的类型是什么?抱歉,代码有点缺乏。alldays目前是一种datetime64[ns]类型,基本上只给出日期,alldays[0]给出:numpy.datetime64('1996-04-01:00:00.000000000'),发生错误时,
alldays[j]
的值是多少?或者它在第一次迭代中失败了(当j=0)我对Python有点陌生,但我认为它是“numpy模块的ndarray对象”。对于j=0Thanks,if语句确实已经失败,这也可能是错误的。但是,在我的实际代码中,if语句后面有breakpoint(),由于这一行,它没有到达这个断点。请发布错误附带的完整stacktrace
d[companies[i]][k:k+155,:] = firms[k- counter*156,:]