質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Q&A

解決済

5回答

2391閲覧

CSVファイルとは?

SAMUSAMUN

総合スコア32

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

0グッド

0クリップ

投稿2017/05/17 11:20

###前提・実現したいこと
機械学習に興味があり,学びはじめたのですが,よくCSV形式?ファイル?というものを目にします.
CSVファイルとは何のためのものですか?
どういうところに使うもので,メリットやデメリットはあるのでしょうか??
どうかよろしくお願い致します.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

honami

2017/05/17 11:33 編集

調べることを放棄しないで下さい。 調べてわからない部分があって初めて「その部分」を質問してください。この質問は、「csvとは」「csv メリット デメリット」とGoogleで検索することとなんら変わりありません。
harashow1701

2017/05/17 14:29

Q&Aサイトなんだから別に質問するを検索の代わりにしたって良いでしょ。
honami

2017/05/17 14:53

harashow1701さんも、ぜひ上記をご一読ください。私は何も意地悪で言っているわけではありません。「自分で解決できること」は質問者にとってメリットとなります。そして、そのように促すことも回答者としての役割であると考えています。
SAMUSAMUN

2017/05/18 06:22

確かにご指摘通り調べる努力が足りていないと感じました.お勧めしてくださった記事を参考にさせていただきます.ありがとうございます.
guest

回答5

0

ベストアンサー

Excelのように複数の行と列になった二次元のデータ、つまり表になるデータを扱いたいときに最も単純な形式がCSVファイルです。

表になっているデータを扱いたいとき、どのようなフォーマットで作れば良いでしょうか?単にデータを並べただけではどこが行でどこが列なのかはわかりません。そこで

  • 行の中の値の区切りに,(カンマcomma)を用いる。
  • 行と行の区切りに改行を用いる。

という極めて単純な規則で構成するのがCSVです。CSVはComma-Separated Valuesの略とされ、文字通り、値(valuse)をカンマ(comma)で分離(separated)したものとなります。実際の例を見てみましょう。

1st,綾波レイ,女,14,零号機 2nd,惣流・アスカ・ラングレー,女,14,弐号機 3rd,碇シンジ,男,14,初号機 4th,鈴原トウジ,男,14,参号機 5th,渚カヲル,男,15,第17使徒

なお、某所によるとこういうデータを痛コードパターンといいます。ついでに、私は全話見ていませんし、映画も見ていません。

データ構造が極めて単純であり、またわかりやすい作りになっています。ただのテキストデータですので、メモ帳で作成して編集することもできます。しかし、考えてみてください。もし、データにカンマや改行を含めたいときはどうするのでしょうか?実はそこに大きな問題があります。

CSVファイルはもともと何かしら規格があったわけではありません。そのため、CSVファイルの扱い方は実装によって異なるという状況でした。ほとんど実装において、

  • カンマや改行を含めたい場合は"で囲む。また、"自体を含めたい場合は、"で囲った上で""と二重化したものを"と見なす。
  • 改行にはCR(U+000D)LF(U+000A)を使用する。

となっていましたが、これは絶対的な物ではありません。後付けでRFC 4180という規格が作られましたが、多くの実装で採用している方法を取っているだけであり、全てがそうであるとは限らないのです。そして、最も大きな問題として、文字コードを指定する方法がないという問題があります。とくにWindowsのExcelでは、文字コードはロケール依存であり、BOM付きUTF-8で無い限り、日本語環境と英語環境では解釈され方が異なります。

他にもデータは単純な文字列としてしか意味がありません。しかし、これまたExcelは数値や日付だと勝手に見なしてしまう場合があるのです。また、1行目をデータのためのヘッダとして扱う場合もあり、混乱に拍車を掛けます。

ということでまとめたいと思います。

何のために、どういうときに使うというと、表のデータを最も単純にテキストとして表現したいときに使います。メモ帳でも表示・作成・編集できるためExcelのようなソフトを別途用意する必要がありません。

つまり、メリットについては、

  • テキストエディタで表示・作成・編集が可能

ということです。そして、私にはこれ以外のメリットは思い当たりません

デメリットは多数あります。

  • カンマや改行を含めたいときに表現する方法がソフトによって異なる。("囲むが全てのソフトで有効とは限らない。)
  • 改行がCRLFとは限らず、LFのみの実装もある。それを読み取れるかもソフトによって異なる。
  • 文字コードが規定されていないため、読み込み時に明示的に指定しないと文字化けを起こす可能性がある。
  • 文字列としてしか扱えない。0という数値と"0"という文字列の区別ができない。そのため、ソフトによっては勝手に数値や日付として扱ってしまう場合がある。
  • 1行あたりの列がバラバラの場合は、余計な列の分についての解釈がソフトによって異なる。
  • データ無しと空文字列の区別ができない。
  • 数値のみを扱いたい場合でも文字列となるため、データサイズが大きくなる。
  • 1行目がヘッダであったとしても、それがヘッダであると言うことを示すことができない。

Excelファイルで適当な日本語があるデータを作り、CSVファイルとして保存して、LibreOfficeのCalcで開いてみてください。単純にそのまま開くと文字化けして使い物になら無いと思います。それぐらいCSVファイルは扱いに注意が必要であり、データとして扱うのに良い形式とは言えません。

なお、CSVの親戚で区切りにタブを用いたTSVというのもあります。

投稿2017/05/17 15:42

raccy

総合スコア21733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Google で「CSV ファイル」を検索してください。
1ページ目にウィキペディアが表示されます。
全く何も知らない時には、ウィキペディアは優先的に見てください。

投稿2017/05/17 11:23

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

CSVファイルとは表データを扱うテキストフォーマットの一種です。
MS Excelを起動し、適当なデータ入力後に [名前を付けて保存] で csv ファイルとして保存できますので、保存したcsvファイルをテキストエディタで開いてみると分かりやすいかと思います。

A1,B1,C1 A2,B2,C2

Re: SAMUSAMUN さん

投稿2017/05/17 11:22

think49

総合スコア18156

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

データファイルの一種です。
テキストファイルで作成し、各値をカンマで区切ります。
故にCSV(Comma Separated Value)という名前になります。
カンマではなくタブで区切る、TSVというのもあります。
個人的にはこちらのほうが扱いやすいので好みです。

投稿2017/05/18 00:30

ttyp03

総合スコア16996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

典型的な例ですと、csvファイルを使って、mysqlにデータを大量投入する例があります。

カンマ区切りなので、扱いやすく、データベースからデータをファイルに書き出すときにもよく使われます。

csv mysqlとかで検索すればたくさん出てくると思います。

投稿2017/05/17 11:25

imamoto_browser

総合スコア1161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問