*記事に掲載されているコードは2023年8月現在問題なく起動します。(検証済み)
こんにちは! Nocky(のっきー)です!
今回はGoogleトレンドのデータをPythonのライブラリ【pytrends】についてご紹介します。
皆さんは Google Trendsをご存知でしょうか? Googleの検索データを活用して世界のトレンドを取得することができるサービスです。
今回、紹介するpytrendsを使うことでいちいちWebサイトで検索してデータを取得しなくても、トレンドを取得できます。
pytrendsで取得できるデータ
pytrendsでは下記のようなデータを取得することができます。
検索数の推移 (interest_over_time)
都道府県別の検索数(interest_by_region)
関連キーワード (related_queries)
関連トピック (related_topic)
急上昇キーワード (trending_searches)
年間のトレンドキワード (top_charts)
取得できるデータは実数ではなく、最大値を100とした統計的に加工されたデータです。しかし、膨大なGoogleの検索データを元とした数値なので、トレンドを知り、分析するには十分だと思います。
※pytrendsはGoogleの公式のライブラリではないため、急に使えなくなる可能性があります。その点にはご注意ください!公式サイトなどチェックしてみてください。
pytrendsのインストール
まずはpyterendsをインストールしましょう!
ターミナルで下記を入力してインストールしてください。
pip install pytrends
Google colaboratoryをで実行する方はノートブックで下記を入力してインストールしてください!
!を文頭に入れればOKです!
!pip install pytrends
pytrendsでデータ取得
それでは、pytrendsでデータを取得する方法をみていきましょう!
まずはGoogleトレンドでキーワードを取得する設定していきます。
from pytrends.request import TrendReq
pytrends = TrendReq(hl='ja-JP', tz=-540)
keyword = "python"
kw_list = [keyword]
pytrends.build_payload(kw_list, timeframe='2021-11-01 2021-12-01', geo='JP')
googleトレンドに接続するための設定を行います。
下記はhlはhost language、tzはtime zoneの設定です。
hl=’ja-JP’で日本語、tz=-540で標準時間より9時間の時差があるを設定しています。
pytrends = TrendReq(hl='ja-JP', tz=-540)
検索するキーワードを設定します。
keyword = "python"
kw_list = [keyword]
下記で実際にデータを取得していきます。 timeframeで期間の設定、geoで地域を設定しています。
pytrends.build_payload(kw_list, timeframe='2021-11-01 2021-12-01', geo='JP')
検索数の推移 (interest_over_time)
検索数の推移を取得するのは下記で可能です。検索数を日別で取得できます。
pytrends.interest_over_time()
下記をコピペして、keyword = “python”を取得したいキーワードに変更してください。
必要ないisPartialというカラムがあるので、drop(‘isPartial’,axis=1)で削除します。
from pytrends.request import TrendReq
import matplotlib.pyplot as plt
pytrends = TrendReq(hl='ja-JP', tz=-540)
keyword = "python"
kw_list = [keyword]
pytrends.build_payload(kw_list, timeframe='2021-11-01 2021-12-01', geo='JP')
trend = pytrends.interest_over_time().drop('isPartial',axis=1)
これで検索数を抽出しました。 ちゃんと検索数が抽出できているかグラフで見てみましょう。
plt.rcParams['figure.figsize'] = 35, 5
trend.plot.bar()
検索数の推移をグラフ化すると下記のようになります。
都道府県別の検索数(interest_by_region)
都道府県別の検索数を取得するのは下記で可能です。
pytrends.interest_by_region
下記をコピペして、keyword = “〇〇○”を取得したいキーワードに変更すれば地域別のデータを取得できます。
from pytrends.request import TrendReq
pytrends = TrendReq(hl='ja-JP', tz=-540)
keyword = "python"
kw_list = [keyword]
pytrends.build_payload(kw_list, timeframe='2021-11-01 2021-12-01', geo='JP')
trends = pytrends.interest_by_region(resolution='JP',inc_geo_code=True).sort_values('geoCode')
trends
interest_by_regionの設定について
resolution=’JP’で地域を日本に設定、inc_geo_code=Trueにすることでgeocodeを表示させています。
sort_values(‘geoCode’)で表示させるときにgeocodeを基準に表示させる設定をしています。
trends = pytrends.interest_by_region(resolution='JP',inc_geo_code=True).sort_values('geoCode')
sort_values(‘python’,ascending=False)を設定するとgeocodeではなく、pythonの検索ボリューム順で表が表示されるようになります。
ascending=Falseがないとボリュームが少ない順に表示されます。
trends = pytrends.interest_by_region(resolution='JP',inc_geo_code=True).sort_values('python',ascending=False)
検索ボリューム順に表示させると上記のようになります。 Pythonの検索ボリュームが東京の次が京都なのは大学などで活用されているのかな?など情報が読み取れますね。
関連キーワード (related_queries)
関連キーワードを取得するのは下記で可能です。
pytrends.related_queries()
下記をコピペして、keyword = “〇〇○”を取得したいキーワードに変更すれば関連キーワードを取得できます。今回はmacの関連キーワードを取得します。
from pytrends.request import TrendReq
pytrends = TrendReq(hl='ja-JP', tz=-540)
keyword = "mac"
kw_list = [keyword]
pytrends.build_payload(kw_list, timeframe='2021-11-01 2021-12-01', geo='JP')
q = pytrends.related_queries()
関連キーワードには2つの項目を取得できます。
- 急上昇関連キーワード
- 関連キーワード
です。急上昇関連キーワードは検索の実数?と思えるボリュームが取得できます。最大値が100ではありません。
急上昇キーワード
q[kw_list[0]]['rising']
関連キーワード
q[kw_list[0]]['top']
変数の中身はこのように辞書方のデータになっています。
関連トピック (related_topic)
関連トピックを取得するのは下記で可能です。
関連トピックは関連キーワードより広いカテゴリーの情報が取得できます。
pytrends.related_topics()
下記をコピペして、keyword = “〇〇○”を取得したいキーワードに変更すれば関連トピックを取得できます。
from pytrends.request import TrendReq
pytrends = TrendReq(hl='ja-JP', tz=-540)
keyword = "python"
kw_list = [keyword]
pytrends.build_payload(kw_list, timeframe='2021-11-01 2021-12-01', geo='JP')
topics = pytrends.related_topics()
関連トピックも2つの項目を取得できます。
- 急上昇関連トピック
- 関連トピック
topics[kw_list[0]]['rising']
topics[kw_list[0]]['top']
急上昇キーワード (trending_searches)
急上昇キーワードを取得するのは下記で可能です。
pytrends.trending_searches(pn='japan')
下記をコピペすれば、すぐに急上昇キーワードを取得できます。
from pytrends.request import TrendReq
pytrends = TrendReq(hl='ja-JP', tz=-540)
pytrends.trending_searches(pn='japan')
急上昇キーワードTop20が取得できます。
年間のトレンドキーワード (top_charts)
年間のトレンドキーワードを取得するのは下記で可能です。
pytrends.top_charts()
下記をコピペすれば、すぐに年間のトレンドキーワードを取得できます。
from pytrends.request import TrendReq
pytrends = TrendReq(hl='ja-JP', tz=-540)
date = 2021
pytrends.top_charts(date, hl='ja-jp', tz=540, geo='JP')
date = 2021
pytrends.top_charts(date, hl='ja-jp', tz=540, geo='JP')
pytrends.top_charts(取得したい年, hl=’日本語’, tz=9時間差, geo=’日本’)を設定したています。
この部分を日本以外に設定すれば、世界中のトレンドを取得できます。
是非、試してみてください!
終わりに
いかがでしたでしょうか!?
Googleトレンドのデータを取得できるPythonのライブラリ【pytrends】について紹介してきました!
検索データを活用したトレンド分析に役立ててみてください!
それではまた、他の記事で会いましょう〜!
おすすめ記事