pytrends で
Blogの
結果を
ブログ記事の カテゴリ一覧
現在、
- カテゴリの
一覧 Accelerated Mobile Pages Apache HTTP Server Args4j Django Dropwizard EasyBatch EclipseLink Elasticsearch FindBugs Frontend QA(Quality Assurance) Google Analytics Google Apps Script Google Data Studio Google Search Console Google Spread Sheet Google Tag Manager IntelliJ IDEA Java JavaScript Jupyter Notebook Mezzanine Mixpanel MongoDB PWA Page Speed Insights Python React RedPen SEO Sonar SonarQube SonarQube squid Wagtail CMS Web API Web Performance Test & Tips Wicket aXe brew gatsby guice jackson linux maven memcached msites pmd postgresql rundeck security sitespeed.io spring-boot wercker データ分析 書籍 統計検定 資格取得 雑記
Google トレンドの 比較は 5キーワードまで
Google トレンドの
ただ、
- 基準キーワードを
決める。 - 基準キーワードを
含めて、 5キーワードの Googleトレンドの 結果を 取得する。 基準キーワード以外を 副キーワードと 呼称する。 - 副キーワードを
切り替えて、 Google トレンドで 検索し、 結果を 保持する。 3.
で保持した 結果を 基準キーワードの 検索ヴォリュームを 補正し、 補正した 結果を マージする。 4.
でマージした データを 可視化する。
前提
以下の
* OS
% sw_vers ProductName: Mac OS X ProductVersion: 10.13.6 BuildVersion: 17G65
- Pythonの
Version % python3 -V Python 3.6.5
インストール方法等は
検索、 検索結果の マージ、 可視化
インストール方法、
以下、
- pytrends を
複数回実行して、 結果を 1つの dataframe に する
# 初期化 from pytrends.request import TrendReq from itertools import zip_longest from itertools import filterfalse import pandas as pd pytrends = TrendReq(hl='ja-JP', tz=360) # キーワードリスト kw_list = ['Accelerated Mobile Pages','Apache HTTP Server','Args4j','Django','Dropwizard','EasyBatch','EclipseLink','Elasticsearch','FindBugs','Frontend QA(Quality Assurance)','Google Analytics','Google Apps Script','Google Data Studio','Google Search Console','Google Spread Sheet','Google Tag Manager','IntelliJ IDEA','Java','Jupyter Notebook','Mezzanine','Mixpanel','MongoDB','PWA','Page Speed Insights','Python','React','RedPen','SEO','Sonar','SonarQube','SonarQube squid','Wagtail CMS','Web API','Web Performance Test & Tips','Wicket','aXe','brew','gatsby','guice','jackson','linux','maven','memcached','msites','pmd','rundeck','security','sitespeed.io','spring-boot','wercker','データ分析','JavaScript','書籍','統計検定','資格取得','雑記'] # 主キーワード primary_kw = 'postgresql' group_by = 4 chunks = zip_longest(*[iter(kw_list)]*group_by) p = lambda x: x is None merged_df = None for elems in list(chunks): elems = list(filterfalse(p, elems)) elems.append(primary_kw) pytrends.build_payload(elems, cat=0, timeframe='today 5-y', geo='JP', gprop='') df = pytrends.interest_over_time() # 取得結果のスコアは String になる。 float 変換したいので、True/False が設定されている `isPartial` を削除して float に変換する。 del df['isPartial'] df = df.astype('float64') # dataframe を primary_kw で最大値で正規化する scaled_dataframe = df.div(df[primary_kw].max(), axis=0) if merged_df is None: merged_df = scaled_dataframe else: # ValueError: columns overlap but no suffix specified が発生するので、やむなく、'postgresql' を削除 del scaled_dataframe[primary_kw] merged_df = merged_df.join(scaled_dataframe) # Dataframe を表示 merged_df
Accelerated Mobile Pages | Apache HTTP Server | Args4j | Django | postgresql | Dropwizard | EasyBatch | EclipseLink | Elasticsearch | FindBugs | ... | security | sitespeed.io | spring-boot | wercker | データ分析 | JavaScript | 書籍 | 統計検定 | 資格取得 | 雑記 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
date | |||||||||||||||||||||
2013-10-20 | 0.00 | 0.02 | 0.0 | 0.13 | 0.58 | 0.00 | 0.0 | 0.01 | 0.02 | 0.03 | ... | 1.208333 | 0.0 | 0.0 | 0.0 | 0.173913 | 3.826087 | 3.608696 | 0.130435 | 0.478261 | 0.130435 |
260 rows × 57 columns
実行時に 気にする ポイント
基準に
これは、
グラフに 描画する
取得結果をdf.plot()
で
検索スコアの
%matplotlib inline import matplotlib as mpl mpl.rcParams['font.family'] = 'IPAPGothic' # 数が多すぎるので出力対象を絞りこむ keyword_list = ['Java','Apache HTTP Server','Dropwizard','Google Analytics','Mezzanine','postgresql','React','JavaScript','Python'] #keyword_list = ['Mezzanine','postgresql','React','JavaScript','Python'] merged_df[keyword_list].plot(logy=True, figsize=(15, 6))
<matplotlib.axes._subplots.AxesSubplot at 0x112642898>
グラフから 言える こと
- Java は
よく 検索されている。 - Python が
Java に 追いついた。 - Mezzanine は
ほぼ0。。。 - Dropwizard よりも、
Apache HTTP Server の ほうが わずかに 検索ヴォリームが 大きい。 Apache は Apache
と呼ばれる ことが 多いと 思うので ほとんど そっちで 検索されているように 思う。 - React の
伸びが 凄まじいが、 postgresql の ほうが React よりもまだ 検索ヴォリュームが 大きい。
結果の csv出力
to_csv
で
このdf2gspread
でto_sql
でto_gbq
で
merged_df.to_csv("google_trend.csv")
その他考えられる pytrends の 使用用途
トピックを
1つに 絞り、 急上昇ワードを 深く 取得する。
キーワードに対する、 急上昇ワードが 取得できます。 この 関連語で 再度検索を 行えば、 再帰的に ワードが 拾えます。
直近でのコンテンツの 方向性決めに 使えたりするのかと 思います。 キーワードボリュームの
実測値を 知る。
掲載順位が1位に なる Google Search Console の 検索クエリを 比較ワードと して、 その 他の キーワードとの 比較を 繰り返します。
この比較結果から、 その 他の キーワードの 表示回数、 クリック数の 推測が できるかと 思います。 同義語 の
調整
同義語の比較を 繰り返して、 どちらの 検索ヴォリームが 多いか(一般的な 言葉)が わかります。
文章の揺れや 望ましい 表現 を 選択する 際の、 1つの ポイントに なるかと 思います。
参考
記事作成中に
python - Pandas join issue: columns overlap but no suffix specified - Stack Overflow
ValueError: columns overlap but no suffix specified
で検索すると ヒットする。 Pandasの
plotの 全引数を 解説 | 自調自考の 旅
対数グラフを出力する。 pandas-APIマラソン-41(pandas.DataFrame.div())
Pandas の割り算。
以上です。
コメント