2015年10月7日水曜日

csvファイルの扱い1---スプレッドシートやExcelとの絡みにて---

csvファイルについて調べたことを書いてみようと思います。

もともとの目標は、pythonなどのプログラミング言語でcsvファイルを扱う方法について調べようと思っていたのですが、もう少し基本的なことまで遡ってcsvファイルの扱い方について調べてみました。

csvファイルとは

そもそもなんなのか、という部分については検索すれば丁寧な解説がたくさんでているので、そちらへ譲ります。

要するに、windowsでいえばメモ帳、Macでいえばテキストエディタとかに書かれていて、カンマで区切られて書かれている

こういうファイルです。

これを、例えばExcelとか、もともとは表形式で作成したデータを、テキストファイル形式にして、他のアプリケーションとやりとりをしやすくします。

表形式のデータだと、ExcelとExcelの間のやりとりなら、まだいいとしても、他のソフトとやりとりをしようと思うと、ファイルの形式が合わず、うまくいきません。

データそのもの(つまりExcelの場合でいえば、各セルに入力されているデータ)以外にも、体裁を整えるための余分なデータがくっついてしまっているので。

で、データの基本的な部分だけ残して作ったものが、csvファイルです。

スプレッドシート→csvファイルの作成

Excelをあまり使ったことがないのでわかりませんが、おそらくExcelでも基本的には同じだと思います。

ここでは、Googleドライブのスプレッドシートからcsvファイルを作成します。

サンプル用のデータとして、次のようなデータを用意します。




データを作成したら、画面左上の「ファイル」をクリックし、「形式を指定してダウンロード」→「カンマ区切りの値(.csv、現在のシート)」を選んでクリックします。



クリックをすると、すぐにダウンロードされます。

普段ダウンロードされたデータが入る場所をみると、「.csv」のファイルができています。

今はMacを使っているので、「ダウンロード」というフォルダの中に入りました。

そのままcsvのデータを開くと、Excelとかデフォルトで指定されているソフトで開かれてしまうと思うので、どのソフトで開くかを指定します。

Macの場合であれば、


ここをクリックすると、


「このアプリケーションを開く」にマウスを合わせ、


「テキストエディタ」をクリックします。

そうすると、テキストエディタで

このように書かれたデータが表示されます。これがcsvファイルです。

csvファイル→スプレッドシート

具体的な操作手順に関してはいろいろあると思いますが、今回は次のような方法でいきます。

新規にスプレッドシートを開き、画面左上のメニューから「インポート」を選びます。



新しく出てくる画面で、アップロードを選び、画面の指示通り、該当のファイルを直接ドラッグするか、パソコンのから該当のファイルを選んで指定します。

そうすると、左下の「選択」のボタンが押せるようになるので、クリックします。


そうすると次のような画面がでます。




ここで操作を選びます。

インポート操作のところは、
  • 新しいスプレッドシートを作成する
    →今開いているスプレッドシートとは全く別に新規にスプレッドシートを開き、そこにcsvファイルを読み込み。

  • 新しいシートを挿入する。
    →現在開いているスプレッドシートで、新しいシートを追加し新しく追加したシートにcsvファイルを読み込み。

  • スプレッドシートを置き換えする。
    →現在のシートにそのままcsvファイルを流し込む。(それ以下の三つと混同しやすい表現ですが。。。)
それ以下三つの選択肢はやや説明が面倒なのでしません。

区切り文字の方は、文字通り「データの区切りの記号はなににしているか」です。
ここは「自動的に検出する」か、「カンマ」にします。csvですのでね。

「タブ」もあるのは、世の中にはcsv(Camma Separeted Value)に対して、「タブ」で区切られてるtsv(Tab Separated Value)なるものもあるからです。

それで読み込みをすると、こうなって無事読み込めます。




ちなみにcsvファイルを読み込むのに、区切り文字に「タブ」を選択すると、次のようになります。



これは、区切り文字は「タブ」と指定しているので、「タブ」がデータの区切りになっているわけです。

つまり、タブが現れるまでは一塊のデータです。

一方、csvと同じように改行コードがくれば、行が変わります。

csvファイルをtsvとして読み込むと、タブが来る前に改行コードが来ているので、一行目が、丸々ひとつのデータをして扱われ、改行コードにて次の行に読み込まれているわけです。

次回は、csvをpythonやCで扱う方法について書いてみようと思います。

0 件のコメント:

コメントを投稿