【正月雑談】GoogleTrendsを使ってニューイヤー駅伝出場企業の検索動向を見た

ニューイヤー駅伝を見ながらGoogleTrendsを見ていたりしたのですが、ふと「出場している全企業名で調べたらどんな動きになるのか?」と気になったので調べてみました。

調査方法

調査方法です。

pytrendsを使用

GoogleTrendsでひとつひとつデータをダウンロードして比較するというのを真っ先に思い浮かんだのですが、出場している企業は40社

流石に40回検索して、ダウンロードして、というのはあまりにも面倒だったのでGeminiに代替案がないか確認。
Pythonのライブラリ「pytrends」を教えてくれました。

Python(pytrends)で自動化する(一番「楽」な自動化)
もし少しだけプログラミング(Python)が触れる、もしくはChatGPTなどにコードを実行させて結果だけ欲しい場合は、pytrends というライブラリを使うのが最強です。

調べてみるとGoogle非公式APIとのこと。とりあえずこちらを使ってみることに。
Google Trendsの情報をPythonで取得したい。pytrendsの紹介

(公式APIが早く使えるようになってほしい)

データの抽出方法

Geminiに聞いてみたところ以下のコードをくれました。(Colabで使用できるように頼んだ)

!pip install pytrends
import pandas as pd
from pytrends.request import TrendReq
import time

# 1. 初期設定
pytrends = TrendReq(hl='ja-JP', tz=540)

# 基準にする会社(これに対する相対値で全社を算出します)
benchmark = "トヨタ自動車"

# 40社のリスト(先ほどの文字起こしデータ)
kw_list = [
    "GMO", "ロジスティード", "トヨタ自動車", "JR東日本", "サンベルクス",
    "中国電力", "黒崎播磨", "Honda", "旭化成", "富士通",
    "三菱重工", "安川電機", "SUBARU", "トヨタ紡織", "住友電工",
    "大塚製薬", "西鉄", "愛知製鋼", "ヤクルト", "マツダ",
    "プレス工業", "SGホールディングス", "ひらまつ病院", "愛三工業", "大阪ガス",
    "コニカミノルタ", "トヨタ自動車九州", "クラフティア", "花王", "NDソフト",
    "NTN", "大阪府警", "中電工", "トーエネック", "JFEスチール",
    "セキノ興産", "中央発條", "YKK", "戸上電機製作所", "M&A"
]

# 全データを格納するDataFrame
final_df = pd.DataFrame()

print("データ取得を開始します。40社あるため数分かかります...")

for kw in kw_list:
    if kw == benchmark:
        continue
    
    # 基準と1社ずつ比較(ノイズを防ぐため「駅伝」を付与しても良いですが、まずは社名で)
    search_keywords = [benchmark, kw]
    
    try:
        # 過去7日間(駅伝当日1/1を含む期間)を指定
        pytrends.build_payload(search_keywords, timeframe='now 7-d', geo='JP')
        df = pytrends.interest_over_time()
        
        if not df.empty:
            # 必要なカラムだけ抽出(isPartialは削除)
            df = df.drop(columns=['isPartial'])
            if final_df.empty:
                final_df = df
            else:
                # 基準(benchmark)列以外の新しいキーワード列を結合
                final_df = pd.concat([final_df, df[[kw]]], axis=1)
        
        print(f"取得完了: {kw}")
        # Googleにブロックされないよう少し待機
        time.sleep(2) 
        
    except Exception as e:
        print(f"エラー発生 ({kw}): {e}")

# 3. CSVとして保存(Colabの左メニューからダウンロード可能)
final_df.to_csv("newyear_ekiden_trends.csv", encoding="utf-8-sig")
print("完了! 'newyear_ekiden_trends.csv' を作成しました。")

データや調査の注意点

コメントアウトに書かれているとおり「トヨタ自動車」を基準にして他の企業が相対的にどのようなトレンドになっているかを抽出する方法になっています。
※企業名についても画像から抽出したので「M&Aベストパートナーズ」が「M&A」等になっています。簡易的な調査をしたかったのでそのあたりは無視しました。

今回は絶妙にうまく行った(と思う)のですが、Googleトレンドはあくまで相対評価のため、分母にするベンチマーク(今回で言えば「トヨタ自動車」)の検索ボリュームによって、他社のハネが強調されたり、逆に押しつぶされたりして見え方が激変する点には注意が必要です。(@goshigoshi10さんありがとうございます

描画した結果

上記のデータを描画した結果。

全体像

こちらが全体像。日付と時間帯別にトレンドが確認できます。

ニューイヤー駅伝の時間帯に大きく伸ばしていることが分かりますね。

あまり動いていない群

普段から検索されているからなのか駅伝影響の少ない群。

ハイライトするとわかりやすい。

よく動いている群

こちらはよく動いている群。明確ですね。

優勝したGMO、上位に入ったサンベルクス、ロジスティードをハイライトするとこんな感じ。

たぶんテレビに映ったタイミングとかもあるのだと思われる図。早めの時間帯で上昇しているプレス工業。(2区途中まで先頭だった)

上がっているものの幅が小さい群もあります。テレビに映ったタイミングとか時間とか…?

あまり動いていない群とよく動いている群

全体像。

感想

テレビに映った時間帯や順位などを合わせるとまた違った動きが見られるかもしれないなと思ったりしました。

箱根駅伝も大学名でトレンド見てみると面白いかもしれませんね。(誰かお願いしますw)

お正月の雑談でした。

〜終〜

ブログへのサポートのお願い(アマゾンギフト)

いつも「バカに毛が生えたブログ」をご愛読いただきありがとうございます。

現在、このブログは皆様のおかげで無料・広告なし(※)で運営しております。
※AdSenseはセンシティブ判定されてしまうため、広告を掲載できません。

ブログの継続とさらなる充実のためご支援をお願いします。
支援は一度限りのショット支援として、¥150から可能です。

いただいた支援は、以下のような形で活用させていただきます:

  • サーバー費用やサイトの維持
  • 新しいコンテンツの作成
  • モチベーション

ご希望の方はスパチャ読みをいたしますので、その旨をお知らせください。

ご支援はより良いブログを提供するための力になります。

こちらのメールアドレスを送信先にしてください。
↓タップするとコピーされます

コメント

タイトルとURLをコピーしました