【python】キーワードプランナーのデータから重複を削除して、CSVで出力
AdWordsのキーワードプランナーからダウンロードしたデータは、スペース前後の入れ替えの違いだけなどが多く含まれているデータになっている。
キーワード調査をする際に1つずつ目視していくのは大変なので、ある程度のノイズデータを一括で除去したい。
準備
#pandasのインポート import pandas as pd from pandas import Series , DataFrame #キーワードを整形するための関数 def shape_kw(keyword): split_kw = keyword.split(' ') #スペースなしのキーワード作成 join_kw = ''.join(split_kw) #並び替えをして、スペースなしのキーワード作成 sorted_kw = sorted(split_kw) shape_kw = ''.join(sorted_kw) #配列にして値を返す return [shape_kw, join_kw]
キーワードデータを整形して、重複行を削除
#CSVの読み込み。落としてきたままのCSVだとエラーになるので、一回保存し直す必要がある? dframe = pd.read_csv('keyword.csv',encoding="cp932") #検索ボリュームで降順に並び替え sorted_dframe = dframe.sort_values(by='Avg. Monthly Searches (exact match only)', ascending=False) #整形したキーワードを代入 shaped_kws = list(map(lambda keyword:shape_kw(keyword),sorted_dframe['Keyword'])) #整形したキーワードをDataFrameに変換 dframe2 = DataFrame(shaped_kws, columns=['shaped_kw', 'join_kw']) #整形したキーワードを、元のDataFrameに追加 sorted_dframe['shaped_kw'] = dframe2['shaped_kw'] sorted_dframe['join_kw'] = dframe2['join_kw'] #重複データのある行を削除 droped = sorted_dframe.drop_duplicates(['shaped_kw']) droped = droped.drop_duplicates(['join_kw'])
CSVで出力
#アウトプットのために列名を変換 renamed_dframe = droped.rename(columns = {'Avg. Monthly Searches (exact match only)':'検索vol.', 'Keyword':'キーワード'}) #アウトプットされる形式 キーワード 検索vol. 0 ハローワーク 1220000 2 バイト 246000 1 転職 246000 3 ハローワーク 求人 201000 4 求人 135000 #検索vol.が空欄のデータを補完 filled_dframe = renamed_dframe['検索vol.'].fillna(0) #キーワードと検索volのみをCSVで出力 filled_dframe[['キーワード','検索vol.']].to_csv('results_shaping_kw.csv')