如何将两列熊猫数据框添加到另一个两列熊猫数据框,中间有一个空列?

时间:2021-02-23 23:54:33

标签: python pandas dataframe

我使用 PyTrends 从 Google 趋势中抓取数据,能够创建一个功能,然后创建 4 个单独的熊猫数据框,每个数据框都有一个“日期”列和一个“失业(丹麦)”列。本质上,我希望能够创建一个包含两列(又名 x1)的熊猫数据框,然后是一个空列作为分隔符,然后我需要添加/加入/插入/添加接下来的两列(x2)。等等等等。一直在寻找所有文档和 stackoverflow 以寻找答案,但找不到。

这是我正在使用的代码:

import pandas as pd
import pytrends
from pytrends.request import TrendReq
pytrend = TrendReq()


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:
            pytrend.build_payload(kw_list=keyword, 
                                  timeframe = DATE_INTERVAL, 
                                  geo = Country, 
                                  cat=CATEGORY,
                                  gprop=SEARCH_TYPE) 
            dicti[i] = pytrend.interest_over_time()
            i+=1
        

    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('Arbejdsløshed', '2004-01-04 2009-01-04', 'DK', 'Unemployment (Denmark)')

x2 = my_funct('Arbejdsløshed', '2009-01-05 2014-01-05', 'DK', 'Unemployment (Denmark)')

x3 = my_funct('Arbejdsløshed', '2014-01-06 2019-01-06', 'DK', 'Unemployment (Denmark)')
              
x4 = my_funct('Arbejdsløshed', '2019-01-07 {0}'.format(Today), 'DK', 'Unemployment (Denmark)')   

尝试:

df = pd.DataFrame(x1)
df2 = pd.DataFrame(x2)
df.join(df2)

请帮忙。 谢谢

0 个答案:

没有答案