为什么 PyTrends/Pandas 程序会抛出错误代码:raise ValueError("No objects to concatenate") ValueError: No objects to concatenate?

问题描述

这是 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 (将#修改为@)