为了账号安全,请及时绑定邮箱和手机立即绑定

不再支持带时间戳的整数和整数数组的加法/减法。而不是添加/减去`n`

不再支持带时间戳的整数和整数数组的加法/减法。而不是添加/减去`n`

一只斗牛犬 2022-10-06 16:02:48
我正在使用 pytrends 库来提取谷歌趋势,我收到以下错误:不再支持带时间戳的整数和整数数组的加法/减法。而不是加/减n,使用n * obj.freqtimeframes = []datelist = pd.date_range('2004-01-01', '2018-01-01', freq="AS")date = datelist[0]while date <= datelist[len(datelist)-1]:    start_date = date.strftime("%Y-%m-%d")    end_date = (date+4).strftime("%Y-%m-%d")    timeframes.append(start_date+' '+end_date)    date = date+3
查看完整描述

2 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

您不能将日期和数字相加,date+4因为谁知道这是哪个单位4h,, 4d, ...?


您可以使用datetime.timedelta,如果您的意思是,这是一个示例days


from datetime import timedelta


end_date = (date + timedelta(days=4)).strftime("%Y-%m-%d")

# ...

date = date + timedelta(days=3)


查看完整回答
反对 回复 2022-10-06
?
繁星coding

TA贡献1797条经验 获得超4个赞

既然你已经在使用 Pandas,为什么还要麻烦导入其他东西呢?你可以做:


import pandas as pd                                            # your code

date = pd.date_range('2004-01-01', '2018-01-01', freq="AS")    # your code


freq = 'D'                                                     # 'H' for hours, etc.

date = date + pd.Timedelta(3, unit=freq)                       # Perform the action

print(date)

输出(与azro的答案相同):


DatetimeIndex(['2004-01-04', '2005-01-04', '2006-01-04', '2007-01-04',

               '2008-01-04', '2009-01-04', '2010-01-04', '2011-01-04',

               '2012-01-04', '2013-01-04', '2014-01-04', '2015-01-04',

               '2016-01-04', '2017-01-04', '2018-01-04'],

              dtype='datetime64[ns]', freq=None)

使用这种方法的另一个原因是,您可能会发现自己处于向日期动态添加内容的情况,例如在方法内部,并且您将单位作为参数传递。


如果您使用的是timedelta(days=3),您将无法更改其他任何内容(小时、分钟等),但只有几天!



查看完整回答
反对 回复 2022-10-06
  • 2 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号