问题描述
这是 pytrend 代码,它接受像“比特币”这样的关键字,像“2004-01-01 2020-01-01”这样的日期。但是这段代码会在不同日期范围内的不同点抛出错误。
def my_funct(Keyword,Dates,Country,Col_name):
KEYWORDS=[Keyword]
KEYWORDS_CODES=[pytrend.suggestions(keyword=i)[0] for i in KEYWORDS]
df_CODES= pd.DataFrame(KEYWORDS_CODES)
EXACT_KEYWORDS=df_CODES['mid'].to_list()
DATE_INTERVAL= Dates
COUNTRY=[Country] #Use this link for iso country code
CATEGORY=0 # Use this link to select categories
SEARCH_TYPE='' #default is 'web searches',others include 'images','news','youtube','froogle' (google shopping)
Individual_EXACT_KEYWORD = list(zip(*[iter(EXACT_KEYWORDS)]*1))
Individual_EXACT_KEYWORD = [list(x) for x in Individual_EXACT_KEYWORD]
dicti = {}
i = 1
for Country in COUNTRY:
for keyword in Individual_EXACT_KEYWORD:
try:
pytrend.build_payload(kw_list=keyword,timeframe = DATE_INTERVAL,geo = Country,cat = CATEGORY,gprop = SEARCH_TYPE)
dicti[i] = pytrend.interest_over_time()
i+=1
time.sleep(8)
except requests.exceptions.Timeout:
print("Timeout occured")
print(dicti)
df_trends = pd.concat(dicti,axis=1)
df_trends.columns = df_trends.columns.droplevel(0) #drop outside header
df_trends = df_trends.drop('isPartial',axis = 1) #drop "isPartial"
df_trends.reset_index(level=0,inplace=True) #reset_index
df_trends.columns=['date',Col_name] #change column names
return df_trends
Today = pd.Timestamp.today().strftime('%Y-%m-%d')
x1 = my_funct('Unemployment','2004-01-04 2009-01-04','DK','Unemployment (Denmark)')
x2 = my_funct('Unemployment','2009-01-04 2014-01-05','Unemployment (Denmark)')
x3 = my_funct('Unemployment','2014-01-05 2019-01-06','Unemployment (Denmark)')
x4 = my_funct('Unemployment','2019-01-06 2020-03-07','Unemployment (Denmark)')
y1 = my_funct('Unemployment benefits','Unemployment benefits (Denmark)')
y2 = my_funct('Unemployment benefits','Unemployment benefits (Denmark)')
y3 = my_funct('Unemployment benefits','Unemployment benefits (Denmark)')
y4 = my_funct('Unemployment benefits','Unemployment benefits (Denmark)')
从这段代码中,我不断收到相同的错误代码,但在不同的日期。也许是 PyTrends 或 Pandas?
错误信息:
Traceback (most recent call last):
File "C:\Users\Vlad01\Desktop\G_Trends\G_Trender.py",line 83,in <module>
y4 = my_funct('Unemployment benefits','2019-01-07 2020-03-07','Unemployment benefits (Denmark)')
File "C:\Users\Vlad01\Desktop\G_Trends\G_Trender.py",line 57,in my_funct
df_trends = pd.concat(dicti,axis=1)
File "C:\Users\Vlad01\anaconda3\lib\site-packages\pandas\core\reshape\concat.py",line 255,in concat
sort=sort,File "C:\Users\Vlad01\anaconda3\lib\site-packages\pandas\core\reshape\concat.py",line 304,in __init__
raise ValueError("No objects to concatenate")
ValueError: No objects to concatenate
任何想法都会非常受欢迎。
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)