我的for loop赢了';t在python中迭代字符串
我必须检查股票期权缺少哪些日期,我想用for循环来完成这项工作。然而 “'(slice(0,155,None),slice(None,None,None))”是无效密钥 显示为错误,我不知道为什么 首先,它是一个我的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
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,:]