【python】複数サイト分のGRC順位データを比較表に整形する

f:id:otoha-googl:20171104180245p:plain

GRCからダウンロードした順位データは上記の形式になっているが、このままではサイト毎の順位比較がしづらいので、下記の形式に整形したい。


f:id:otoha-googl:20171104180529p:plain

準備

pandasを使用して整形する。

import pandas as pd
from pandas import Series, DataFrame

GRCの順位データの整形

GRCデータの読み込み

pandasのread_csv()を使用して、GRCの順位データをDataFrameに読み込む。
GRCからダウンロードできるCSVは、1~2行目に必要ないデータが入っているので、skiprows=2を指定する。

dframe = pd.read_csv('grc_data.csv', encoding='cp932', skiprows=2)

DataFrameのデータを、ピボットに変換

下記の例では、'検索後'を行名、'サイト名'を列名、'Google順位'を値として埋める。

grc_pivot = dframe.pivot('検索語', 'サイト名' , 'Google順位')

grc_pivot

#出力結果
サイト名	サイト1	サイト2	サイト3	サイト4	サイト5	サイト6
検索語						
キーワードA	1	6	11	11	11	11
キーワードB	2	7	12	12	12	12
キーワードC	3	8	13	14	15	16
キーワードD	4	9	14	14	14	14
キーワードE	5	10	15	15	15	15

整形後のデータをCSVで保存

grc_pivot.to_csv('grc_shaped.csv')

まとめ

Excelだと関数が重たくなりがちだが、pythonならすぐに整形出来た。
20000行とかでも一瞬で処理できたので、役立ちそう。