Получить общий тренд с помощью pytrend по стране на 2019 год - PullRequest
0 голосов
/ 25 апреля 2020

Я хотел бы получить верхнюю диаграмму для Франции в 2019 году, но у меня есть некоторые проблемы с моим кодом здесь:

!pip install pytrends
import pandas as pd                        
from pytrends.request import TrendReq
import pytrends
pytrend = TrendReq(hl='fr-FR', tz = 360)
df = pytrend.trending_searches(pn='france')
print(df.head())

df = pytrend.top_charts(2019, hl='fr-FR', tz=360, geo='FRANCE')
print(df.head())


IndexError                                Traceback (most recent call last)
<ipython-input-14-87584cc2de91> in <module>()
      7 print(df.head())
      8 
----> 9 df = pytrend.top_charts(2019, hl='fr-FR', tz=360, geo='FRANCE')
     10 print(df.head())

/usr/local/lib/python3.6/dist-packages/pytrends/request.py in top_charts(self, date, hl, tz, geo)
    435             trim_chars=5,
    436             params=chart_payload,
--> 437         )['topCharts'][0]['listItems']
    438         df = pd.DataFrame(req_json)
    439         return df

IndexError: list index out of range

Так что если кто-нибудь знает, как получить верхнюю диаграмму для 2019 года в Франция с python и py тенденциями

С уважением

1 Ответ

0 голосов
/ 25 апреля 2020

df = pytrend.top_charts(2019, hl='fr-FR', tz=360, geo='FR') должен исправить это

Вот реализация top_chart, как вы можете видеть * аргумент geo выглядит как заглавный, и, очевидно, geo для Франции должно быть FR:

def top_charts(self, date, hl='en-US', tz=300, geo='GLOBAL'):
        """Request data from Google's Top Charts section and return a dataframe"""
        # create the payload
        chart_payload = {'hl': hl, 'tz': tz, 'date': date, 'geo': geo,
                         'isMobile': False}

        # make the request and parse the returned json
        req_json = self._get_data(
            url=TrendReq.TOP_CHARTS_URL,
            method=TrendReq.GET_METHOD,
            trim_chars=5,
            params=chart_payload,
        )['topCharts'][0]['listItems']
        df = pd.DataFrame(req_json)
        return df
...