我使用 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)
请帮忙。 谢谢