移設されました(2019/7/1)分析データの受渡方法で頻繁に使うCSVファイル。扱い方を間違うと厄介なことになる分析業務に限らず、抽出元システムからデータをエクスポート(外部ファイル出力)して、取込先システムにデータをインポート(外部ファイル取込)する作業(処理)の中で使用するファイルフォーマット形式として、CSVファイルが多く用いられます。Excelの保存形式やオープンデータの提供方法、身近な物では年賀状ソフトの住所録情報のエクスポート形式などでCSVファイル形式が使用され、ITに詳しい人だけではなく、一般のパソコン利用者でもCSVファイルの存在を知っている人は多いと思います。今回は、何気に使っているCSVファイルのファイル形式とその弱点について、原点に戻って説明します。CSVファイルとは?CSVファイルについて、Wikipediaの内容を引用します。values(略称:CSV)は、いくつかのフィールド(項目)をカンマ「,」で区切ったテキストデータおよびテキストファイル。variables」とも言う。広く普及した訳語はないが、「カンマ区切り」などとも呼ばれる。(カンマ区切り)」としている。Valuesご存知の通り、CSVファイルは、日本語で翻訳すると「カンマ区切り」のファイル形式です。1行の文字列を半角カンマ文字「,」で複数のデータ項目に分割します。values)ファイルと言う場合もありますので、相手に伝える時は「カンマ区切りのCSVファイル」と言った方が誤解はないと思います。ここまでの情報は、CSVファイルの概要についてです。これからCSVファイルを分析データとして使い場合を想定して、情報を深掘りします。会計や売上システムなどで使用される一般的なDBではデータをExcelのような表形式で保持しています。表形式ですので「行」と「列」の概念があり、1件の情報を1行にまとめ、1行の各列に各情報が登録されています。このようなDBから外部ファイルとしてCSVファイルをエクスポートした場合、行と列の構造はどうなっているのでしょうか?CSVファイルにも「行」の仕様がありますので、1行を改行文字がある場所までを1行としています。列の持ち方については、CSVファイルの仕様として決まっている物ではありません。そのため、CSVファイルをデータとして扱うために項目(フィールド)の出現順の条件を加える必要があります。DBからPOSレジの情報を下記のようなCSVファイルとしてエクスポートしたとします。その中にはカンマ区切りで情報が入っています。これをカンマで項目ごとに分解し、CSVファイルの項目の出現順によってDB上の列を判断します。この様に列を表現することができないCSVファイルの仕様に対して、項目の出現順の条件を加えて、仮想的に列を表現することができます。「何番目の項目がDB上の列のどこに該当するか」をCSVファイルからも分かるように、先頭行にタイトル行を持たせていると便利です。CSVファイルで扱いが面倒な文字CSVファイルは「改行文字までを1行」「カンマ文字までを1項目」として解釈します。データの中には改行文字やカンマ文字も文字情報として保持している場合があります。このようなデータをそのままCSVファイルでエクスポートしてしまうと、上記で説明した項目の出現順の情報が狂い、正しいCSVファイルの解釈ができなくなります。カンマや改行文字を文字情報として出力したい場合は、括り文字として半角ダブルクォーテーション「”」や半角クォーテーション「’」などを使用して1つの項目の文字列情報として扱う方法が多く用いられます。「今なら2本セットで19,800円です」という文字列情報を普通にCSVファイルとして解釈した場合、「今なら2本セットで19」と「800円です」に項目が分かれてしまいます。これを回避するために「”今なら2本セットで19,800円です”」と両端に半角ダブルクォーテーションを追加します。「今なら2本セットで”19,800円”です」のように途中に半角ダブルクォーテーションが入っている場合は「”今なら2本セットで\”19,800円\”です”」と円マーク「\」を半角ダブルクォーテーションの前に付ける事で半角ダブルクォーテーションも文字情報として扱う事ができます。この様に半角ダブルクォーテーションや半角クォーテーション、円マークを使うことでカンマ文字も文字情報として取り扱うことができますが、この様な仕様は、CSVファイルの仕様として必ず実装しなくてはいけない決まりはないため、取込先(インポート先)のシステムでは、カンマ文字を正しく解釈できない場合があります。ExcelでCSVファイルを使うときは要注意CSVファイルはExcelでも参照・編集が可能です。CSVファイルをExcelで編集する時には注意が必要です。CSVファイルには、ExcelやDBなどにあるデータ型の情報が入っていません。関係なく全て文字情報として出力されています。この様なCSVファイルをExcelで普通に開いた場合、Excelの解釈でデータ型が設定され、結果、下記のような元のCSVファイルの情報と違う形で表示されてしまいます。(例は上記のCSVファイルをExcelで開いた場合の例です)上記のようにCSVファイルの情報を壊さないために、ExcelからCSVファイルを開く場合は、Excelの「外部データの取り込み(テキストファイル)」機能を使用して、各項目のデータ型を設定して取り込む必要があります。データ分析用語:索引AUTHOR他のスタッフを見る"ギックスギックスからのお知らせをお伝えします。加えて、「ギックスらしさ」につながる“インターン生による記事”や“外部からの寄稿”なども、こちらのアカウントで発信していきます。活用して機械学習のワークフローを構築する2020.02.03【メディア掲載】「トチカチ」が日経クロストレンド、日経MJに取り上げられました。2020に、「トチカチ」を出展しています。データ分析のお作法ブログ購読にはRSSとTWITTERが便利です。CONCEPTギックスの創業理念と目指す姿をご紹介します。グラフ理論などを駆使し、経営課題の解法を探りますデータ基盤構築サービス理論を実務に繋いで成果を創出。永続的な拡張により顧客便益を最大化します。情報セキュリティ基本方針CONTACTRSS。