python - Pytrends - IndexError:单个位置索引器超出范围
问题描述
我有下面的脚本,似乎脚本的下面一行正在造成问题,但我不知道为什么。
当我手动将日期插入函数而不是使用参数(例如,Now_RangeStart)时,一切正常,但是当我将它们拉出到参数中时,我得到了IndexError: single positional indexer is out-of-bounds
错误。
dt_all = pd.date_range(start=df_select['date'].iloc[0], end=df_select['date'].iloc[-1])
任何帮助/建议将不胜感激!
import pandas as pd
from pytrends.request import TrendReq
import pytrends
pytrend = TrendReq()
import plotly.express as px
geo = "US"
start_date_long = "2019-01-01"
end_date = "2021-04-10"
kw1 = "budget"
kw2 = "finance"
kw3 = "credit"
kw4 = "stocks"
kw5 = "invest"
import plotly.express as px
Now_RangeStart = "2021-02-01"
Now_RangeEnd = "2021-04-10"
Prior_RangeStart = "2020-02-01"
Prior_RangeEnd = "2020-04-10"
pytrend.build_payload(kw_list, timeframe='{} {}'.format(start_date_long,end_date), geo='{}'.format(geo))
df_select = pytrend.interest_over_time()
df_select = df_select.reset_index()
df_select = df_select.loc[((df_select['date'] <= ''.format(Now_RangeEnd)) & (df_select['date'] >= ''.format(Now_RangeStart)) | (df_select['date'] <= ''.format(Prior_RangeEnd)) & (df_select['date'] >= ''.format(Prior_RangeStart)))]
# build complete timepline from start date to end date
dt_all = pd.date_range(start=df_select['date'].iloc[0], end=df_select['date'].iloc[-1])
# retrieve the dates that ARE in the original datse
dt_obs = [d.strftime("%Y-%m-%d") for d in pd.to_datetime(df_select['date'])]
# define dates with missing values
dt_breaks = [d for d in dt_all.strftime("%Y-%m-%d").tolist() if not d in dt_obs]
# make figure
fig = px.line(df_select.sort_values(by=['date'], ascending=[True]), x='date', y=['{}'.format(kw1), '{}'.format(kw2), '{}'.format(kw3), '{}'.format(kw4), '{}'.format(kw5)], color_discrete_map={'{}'.format(kw1): 'blue', '{}'.format(kw2): '#303030', '{}'.format(kw3): '#696969', '{}'.format(kw4): '#980000', '{}'.format(kw5): '#FF0000'})
# hide dates with no values
fig.update_xaxes(rangebreaks=[dict(values=dt_breaks)])
fig
解决方案
推荐阅读
- android - 在手机上的谷歌地图中规划路线,然后将其分享到另一个应用程序
- azure-devops - 如何从 Azure DevOps 中的项目中提取所有工作项描述?
- mysql - MySql获取子查询的总和,子查询有一个联合
- angular - Angular Firestore 从 Doc 获取单个值
- javascript - 将回调函数的结果推送到数组时如何等待迭代完成
- visual-studio - 如何在仍然使用 sysnative 虚拟文件夹的同时使用 Visual Studio 的 Exec 代码 -1 避免错误 MSB3073
- java - How do I get a pure JSON string instead of HTML
- c# - 即使通过工具和功能安装模块后,Linq to SQL 也没有显示
- javascript - 更新时在对象上使用 useState 挂钩时是否需要使用扩展运算符?
- reactjs - 单击不同元素后反应保持焦点位置