EXCELのセルの値をPythonの正規表現で置換する

EXCELのセルの値を正規表現で置換したい。できれば使いなれたPythonでやりたい。

そのような人も結構多いのではないでしょうか。

この記事では、OpenRefineを使用してPythonスクリプトでデータを変換する方法について説明します。

OpenRefineでEXCELファイルを読み込みます。(説明は省略します)

EXCELが正常に読み込まれると以下のようなOpenRefineの編集画面が表示されます。

今回はサンプルデータの列”city”(赤線で囲った部分)の値を正規表現を使って置換してみます。

サンプルデータは以下を使用しています。

https://support.spatialkey.com/spatialkey-sample-csv-data/

fig1_x

OpenRefineでは列全体に対して、正規表現を使って置換操作ができます。使用できる言語は以下の3つです。

  • General Refine Expression Language(GREL)
  • Python/Jython
  • Clojure

正規表現で文字列を操作したい列(この例ではcity)にある▼マークをクリックし、スクリプトを記述するエディタを開きます。

“Add column based on this column…”をクリックすると以下の画面が開きます。プレビュー(Preview)にcity列の値(value)”SACRAMENTO”が表示されています。

ここではこの”SACRAMENTO”の文字列の一部を正規表現を使って置換してみます。

言語はデフォルトでは、OpenRefineのスクリプト言語”General Refine Expression Language(GREL)”になっていますが、今回は”Python/Jython”を使用します。以下の図のように入力します。Pythonスクリプトによって変換された文字列はプレビュー画面で確認することができます。スクリプトを記述する場合に注意する点としては、変換前のデータは”value”という変数に格納されていますので、変数”value”を変換します。そして必ずreturnで値を返却するように記述する必要があることです。正しく変換されていることを確認したらOKボタンをクリックします。OKボタンをクリックすると、ここで入力したカラム名(この例では”city2″)の列が追加され、変換されたデータが格納されます。

いかがでしたでしょうか。EXCELデータの値をPythonを使って自由自在に変換することができます。Pythonを使い慣れている人には大変便利です。

writer has written 23 articles