CSVってどんなファイルなの?
すごくシンプルで「名前,年齢,住所」みたいにカンマで値を区切って、1行に1件分のデータを書くだけのテキストファイルだよ。Excelでも開けるし、プログラムからも簡単に読み書きできるから、データのやりとりの定番フォーマットなんだ。
JSONやYAMLと比べてどう違うの?
CSVは「表形式」のデータに特化しているのが特徴だよ。JSONやYAMLは階層構造(入れ子)を表現できるけど、CSVは行と列だけのフラットな表しか表せない。そのかわり構造がシンプルだから、データ量が多くても軽くて高速に処理できるんだ。
CSVを扱うときの注意点ってある?
一番のハマりポイントは「データの中にカンマが入っているケース」だね。住所に「東京都千代田区,1-1」のようなカンマがあると区切り位置がずれてしまう。こういうときはダブルクォートで囲むルールがあるんだけど、ツールによって扱いが微妙に違って文字化けやずれが起きやすいから、文字コードの指定(UTF-8かShift_JISか)と合わせて事前確認するのが大事だよ。
ExcelでCSVを開くと数字がおかしくなるんだけど、なんで?
Excelが勝手にデータ型を推測して変換してしまうからだよ。「001」が数値の「1」になったり、「1-2」が日付の「1月2日」になったり。特に電話番号や商品コードで困る人が多いね。対策は「データの取り込み」機能で列ごとにテキスト指定するか、拡張子を.txtにしてテキストウィザードから開く方法があるよ。実はこの問題は科学論文でも深刻で、遺伝子名「MARCH1」がExcelで「3月1日」に変換されて論文データが壊れる事例が多発して、遺伝子命名委員会が遺伝子名を改名したこともあるんだ。