Visual Studio Code(VSCode) 拡張機能 Rainbow CSVについて

CSVはまだまだ現役です

お仕事のシステムでいくつかのデータをCSV形式で保持しているのですが、これが中々巨大なデータで列が30とかザラにあります。

この中のデータを加工してテストデータ作成して、という作業があったのですが、各カラムにダブルクォートがあったりなかったりで統一されておらず。全項目ダブルクォートなしにするかありにするか、どちらかに寄せて良いか確認したところ、そのままの形で作成して欲しい依頼があったので、ちょっと難儀でした。

Visual Studio Codeで編集

そんなデータを Visual Studio CodeVSCode)を使って編集していましたが、そういえばCSV拡張機能ないかなぁと思って調べていたところ、すごく使いやすい物がありました。

Rainbow CSV

Rainbow CSVという拡張機能です。

f:id:akky97:20201122133519p:plain

marketplace.visualstudio.com

こんな感じ

CSVを開くと良い感じに色分け

拡張機能をいれてCSVファイルを開くと各カラムが色付けされます。

f:id:akky97:20201122135744p:plain

そして、マウスカーソルをカラムデータに合わせるとそれが何カラム目なのかとヘッダ情報(一行目をヘッダとして認識)を表示してくれるので、列が多い時や空データが続く場合など視認性が非常によくなります。

f:id:akky97:20201122140244p:plain
マウスポインタを「756454」に合わせたところ

色分けだけじゃないデータ加工

Rainbow CSVには色分け表示だけでなく、SQLライクな文法でデータを加工する機能もついています。

CSVを開いている画面下部にある「Query」をクリックします。

f:id:akky97:20201122140915p:plain

またはコマンドパレット(「Ctrl」+「Shift」+「p」)から「Rainbow CSV: RBQL」を実行します。

f:id:akky97:20201122141333p:plain

すると以下のようにクエリ入力画面に切り替わります。

f:id:akky97:20201122141943p:plain

試しにいくつかの列を抽出してみます。 クエリ入力することころにselect a1, a2, a3でRunしてみます。

するとエラーになってしまいました…

f:id:akky97:20201122150241p:plain

入力データが Shift-JIS になっているのが原因ですね。元ネタのCSV文字コードをUTF8に変換して再度クエリを実施。

無事指定した内容で結果が出てきました。

f:id:akky97:20201122150636p:plain

結果画面の下部にある「Copy Back」をクリックすることでオリジナルのCSVファイルにクエリ実行結果を反映することもできますし、結果ファイルを別名で保存することも可能です。

入れ替え

クエリの書き方によって列を入れ替えたり、データ内の値を変更したり、固定文字出したりといろいろできます。

select a1, a3, a2 とすると先ほどの例の「都道府県」と「元号」の部分が入れ替わります。

f:id:akky97:20201122151600p:plain

通し番号

select "No." + NR, a1, a3, a2 とすると先頭に「No.」とレコード番号が付与されます。

f:id:akky97:20201122152453p:plain

先頭行(ヘッダ行)カウントしているので、ちょっと工夫は必要そうです…

Visual Studio Code上で機能拡張できるので便利

こういう機能を自分でカスタマイズして自分で機能拡張できるのもVisual Studio Codeの良いところですね。(拡張機能がありすぎて選べなかったりしますが…)

CSVのサンプルデータは下記で公開されているものを利用しました

www.e-stat.go.jp