【问题标题】:Addition/subtraction of integers and integer-arrays with Timestamp is no longer supported. Instead of adding/subtracting `n`, use `n * obj.freq`不再支持带时间戳的整数和整数数组的加法/减法。而不是添加/减去`n`,使用`n * obj.freq`
【发布时间】:2021-12-31 18:05:17
【问题描述】:

我正在使用 pytrends 库来提取谷歌趋势,我收到以下错误:

不再支持带时间戳的整数和整数数组的加法/减法。不要加/减n,而是使用n * obj.freq

timeframes = []
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

【问题讨论】:

  • 哪一行出错?
  • @JoshuaVarghese 如果我没记错的话,它会发生在 while 循环体的第 2 行和第 4 行。 :)

标签: python pandas google-trends


【解决方案1】:

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


你可以使用datetime.timedelta,如果你的意思是days,这里是一个例子

from datetime import timedelta

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

【讨论】:

    【解决方案2】:

    既然你已经在使用 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),您将无法更改其他任何内容(小时、分钟等),只能更改天数!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 2020-12-11
      • 1970-01-01
      • 2021-03-17
      • 2018-05-27
      • 1970-01-01
      相关资源
      最近更新 更多