gpt4 book ai didi

Python错误: cannot add integral value to Timestamp without freq

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:04 33 4
gpt4 key购买 nike

我正在尝试计算两个日期之间的差异,以获得两个日期之间的整数差异(以天为单位)的数字,但出现以下错误:“无法在没有频率的情况下将整数值添加到 Timestmp”。这是代码:

from __future__ import print_function

try:
import argparse
flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
except ImportError:
flags = None

import os
import datetime
import pandas_datareader.data as web
import numpy as np
import pandas as pd

def main():
count = 0
df = pd.DataFrame([])
start = datetime.datetime(2017, 10, 11)
end = datetime.datetime(2017, 10, 27)
index_date = datetime.datetime(2017, 10, 11)
symbols_list = ['ORCL', 'TSLA', 'IBM','YELP', 'MSFT']
length = len(symbols_list)
for num, ticker in enumerate(symbols_list, start=1):
f = web.DataReader(ticker, 'yahoo', start, end)['Adj Close']
f.ix[index_date]
if count == 0:
f = f.to_frame().reset_index()
df = f
df.columns = ['Date', ticker]
length_df = len(df)
sDate = df.iloc[:,-2] # Date data list
print ('sDate[0] is: ', (sDate[0]))
j = 0
while j < len(sDate[j] - 1):
date_delta = timedelta(sDate[j] - index_date)
j += 1

它在最后一行崩溃:

date_delta = timedelta(sDate[j] - index_reference_date)

错误消息是:“无法在没有频率的情况下将整数值添加到 Timestmp”。

我不明白问题出在哪里。数据类型有:

sDate[0] is:     2017-10-06 00:00:00, and 
index_date is: 2017-10-11 00:00:00
index_date type is: <type 'datetime.datetime'>

但请注意:

sDate[0] type is:  <class 'pandas._libs.tslib.Timestamp'>

所以:也许问题就在这里?感谢您的帮助!

最佳答案

此行有一个输入错误:

while j < len(sDate[j] - 1):

sDate 是一个日期数据列表,因此 sDate[j] 是一个日期(可能是 pandas.tslib.Timestamp 类型)并且它的长度没有意义。所以你可能想要这样的东西:

while j < len(sDate) - 1:

也许使用 for 循环更合适,例如:

for dat in sDate[:-1]:

编辑:然后你需要我写到第一个答案的想法。

关于Python错误: cannot add integral value to Timestamp without freq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47148171/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com