用于Google趋势的python:使用interest_over_time时,“ValueError:year超出范围”

时间:2017-03-04 21:54:46

标签: python google-trends

我是新手,在python中使用pytrends模块,允许您从Google趋势中提取数据。该网站对该模块进行了很好的介绍:https://github.com/GeneralMills/pytrends

使用pytrend.interest_over_time()时,我收到消息“ValueError:year is range of range”。我的代码的关键部分是:

import pytrends
from pytrends.request import TrendReq

google_username = "" #my username
google_password = "" #my password

pytrend = TrendReq(google_username, google_password, custom_useragent=None)

pytrend.build_payload(kw_list=['Chipotle'], timeframe = 'today 5-y')
pytrend.interest_over_time()

然后我收到错误消息“ValueError:year is of range”

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我在第180行的request.py中添加了astype('int')

从:

    df['date'] = pd.to_datetime(df['time'], unit='s')

为:

    df['date'] = pd.to_datetime(df['time'].astype('int'), unit='s')

(不确定为什么我的行号不同,但看起来像是同一个问题)

答案 1 :(得分:0)

在python ... \ Lib \ site-packages \ pytrends \ request.py

中更改以下内容

第3行:

from datetime import datetime

第128行:

#df['date'] = pd.to_datetime(df['time'],unit='s')
df['date'] = df['time'].map(lambda d: datetime.fromtimestamp(int(d)))

这对我有用:)

答案 2 :(得分:0)

按照documentation中的建议,您可以像这样转换时间戳:tstamp.to_datetime64().astype('O')