CSV (.csv)

予備知識

    • MIME type: text/comma-separated-values, text/csv
    • CSV表データ書式.
    • 数値およびテキスト情報を,コンマでフィールドが区切られた行として保管する.
    • 一般にスプレッドシートアプリケーションにおいてデータ交換形式として使われる.
    • CSVはComma-Separated Valuesの頭字語である.
    • テキスト形式.
    • TSVに似ている.
    • RFC 4180をサポートしている.

ImportとExport

  • Import["file.csv"] はファイルに保管された行と列を表す,文字列や数値の二次元配列を返す.
  • Import["file.csv",elem]はCSVファイルから指定の要素をインポートする.
  • Import["file.csv",{elem,subelem1,}] は子要素 subelemiをインポートし,部分的なデータインポートに役立つ.
  • インポート形式は,Import["file","CSV"] または Import["file",{"CSV",elem,}]で指定できる.
  • Export["file.csv",expr] exprからCSVファイルを作成する.
  • サポートされている式 expr
  • {v1,v2,}1列のデータ
    {{v11,v12,},{v21,v22,},}データの行のリスト
    arraySparseArrayQuantityArray等の配列
    tseriesTimeSeriesEventSeriesTemporalDataオブジェクト
    Dataset[]データ集合
  • 一般的な情報は,以下の関数ページを参照のこと.
  • Import, Exportファイルからインポートする,あるいはファイルへエキスポートする
    CloudImport, CloudExportクラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする
    ImportString, ExportString文字列からインポートする,あるいは文字列へエキスポートする
    ImportByteArray, ExportByteArrayバイト配列からインポートする,あるいはバイト配列へエキスポートする

Import要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Summary"ファイルの概要
    "Rules"すべての可能な要素の規則のリスト
  • データ表現要素:
  • "Data"二次元配列
    "Grid"Gridオブジェクトで表された表データ
    "RawData"文字列の二次元配列
    "Dataset"Datasetで表された表データ
  • ImportExportはデフォルトで"Data"要素を使用する.
  • 任意の要素 elem のデータの部分的なインポートにおいて,部分要素は{elem,rows,cols}という形式で行と列の指定をすることができる.rowscols は以下のいずれでもよい:
  • nn 番目の行または列
    -n最後から数える
    n;;mn から m まで
    n;;m;;sn から m までステップ s
    {n1,n2,}特定の行または列 ni
  • メタデータ要素:
  • "Dimensions"行数と最大列数のリスト
    "MaxColumnCount"列の最大数
    "RowCount"行数

オプション

  • ImportExportのオプション:
  • "EmptyField"""空のフィールドの表現方法
    "TextDelimiters""\""数値でないフィールドの区切りに使われる文字
  • コンマと行区切りを含むデータフィールドは通常ダウブルクォート文字でラップされる.デフォルトではExportは区切り文字としてダブルクォート文字を使用する.別の文字は"TextDelimiters"を使って指定できる.
  • テキストフィールドを区切るダブルクォート文字はデフォルトではインポートされない.
  • Importオプション:
  • CharacterEncoding"UTF8ISOLatin1"ファイルで使用される生の文字コード
    "CurrencyTokens"{{"$", "£", "¥", "€"}, {"c", "¢", "p", "F"}}数値をインポートするときに省略される通貨単位
    "DateStringFormat"NoneDateStringとして指定された日付形式
    "FillRows"Automatic行を列の最大長まで埋めるかどうか
    "HeaderLines"0ヘッダであると仮定する行の数
    "IgnoreEmptyLines"False空白行を省くかどうか
    "NumberPoint""."小数点に使用する文字列
    "Numeric"Automaticデータフィールドを数値としてインポートするかどうか(可能な場合)
    "SkipLines"0ファイルの最初の省く行数
  • デフォルトでは,Importはデータが"UTF8"でエンコードされたテキストであるとして解釈を試みる.ファイルに保存されたバイト列で"UTF8"で表せないものがある場合は,Importは代りに"ISOLatin1"を使用する.
  • CharacterEncoding -> Automaticとすると,Importはファイルの文字コードの推測を試みる.
  • "HeaderLines""SkipLines"は以下の設定が可能である:
  • n省略またはDatasetヘッダとして使用する n
    {rows,cols}省略またはヘッダとして使用する行と列
  • Import"DateStringFormat"の指定に従ってフォーマットされた表の項目をDateObjectに変換する.
  • Exportオプション:
  • AlignmentNone表の列にデータがどのように並んでいるか
    CharacterEncoding"UTF8"ファイルで使用される生の文字コード
    "FillRows"False行を列の最大長まで埋めるかどうか
    "TableHeadings"None表の行と列の見出し
  • Alignmentが取り得る設定はNoneLeftCenterRightである.
  • "TableHeadings" は以下の値を取ることができる:
  • Noneラベルなし
    Automatic列と行に連続する整数ラベルを与える
    {"col1","col2",}列のラベルのリスト
    {rhead,chead}行と列に別々のラベルを指定する
  • Exportは,Wolframシステムが実行されているコンピュータシステムに従って行区切り文字をエンコードする.

例題

すべて開くすべて閉じる

  (3)

CSVファイルをインポートする:

ファイルからすべてのデータを読み取り,プロットする:

CSVファイルをDatasetとしてヘッダとともにインポートする:

式の配列をCSVにエキスポートする:

スコープ  (4)

Datasetをエキスポートする:

Valuesを使ってデータセットから見出しを取り除く:

"HeaderLines"オプションを使って表見出しをインポートする:

TimeSeriesをエキスポートする:

EventSeriesをエキスポートする:

QuantityArrayをエキスポートする:

Import要素  (17)

"Data"  (6)

CSVファイルを値の二次元リストとしてインポートする:

これはデフォルト要素でもある:

CSVファイルから一行をインポートする:

CSVファイルから特定の行をインポートする:

CSVファイルの最初の10行をインポートする:

CSVファイルの一つの行と列をインポートする:

CSVファイルから一列をインポートする:

"Dataset"  (3)

CSVファイルをDatasetとしてインポートする:

最初の行を列見出しとして使用するために"HeaderLines"を使う:

"SkipLines"を使って興味のあるデータだけをインポートする:

"Dimensions"  (1)

CSVファイルから次元を取得する:

ファイル内のすべての行が同じ列数である訳ではない場合,最大列数が使用される:

"Grid"  (1)

CSVデータをGridとしてインポートする:

"MaxColumnCount"  (1)

CSVファイルから列の最大数を取得する:

"RawData"  (3)

CSVデータを生の文字列としてインポートする:

"Data"と比較する:

"RawData"に対してはデフォルトでは"Numeric"->Falseが使用される:

"Numeric"->Trueを使用する:

"RawData"に対してはデフォルトでは"FillRows"->Trueが使用される:

"FillRows"->Falseを使用する:

"RowCount"  (1)

CSVファイルから行数を取得する:

"Summary"  (1)

CSVファイルの概要:

Importオプション  (10)

CharacterEncoding  (1)

文字エンコードは$CharacterEncodingsの任意の値に設定できる:

"CurrencyTokens"  (1)

通貨トークンは自動的に省かれる:

"CurrencyTokens"->Noneを使うとすべての通過トークンが含まれる:

"DateStringFormat"  (1)

指定された日付形式で日付をDateObject指定に変換する:

デフォルトでは変換は行われない:

"EmptyField"  (1)

CSVデータの空のフィールドのデフォルト値を指定する:

"FillRows"  (1)

"Data"要素については,行の長さは自動的に維持される:

行を充填する:

"RawData"要素については,デフォルトで配列全体がインポートされる:

"HeaderLines"  (1)

デフォルトでは,行と列はどれも見出しであるとは想定されない:

列見出しを指定する:

行見出しを指定する:

行と列の見出しを指定する:

"IgnoreEmptyLines"  (1)

"IgnoreEmptyLines"を使ってインポートされたデータからデータの入っていない行を削除する:

"Numeric"  (1)

数を解釈するために"Numeric"->Trueを使用する:

デフォルトではすべてが文字列としてインポートされる:

"SkipLines"  (1)

CSVファイルはコメント行を含んでいることがある:

コメント行を省く:

コメント行を省き,次の行をDatasetの見出しとして使用する:

"TextDelimiters"  (1)

デフォルトのテキスト区切りはダブルクォートである:

テキスト区切りにはその他の文字も使用できる:

Exportオプション  (7)

Alignment  (1)

デフォルトでは位置揃えのために文字は加えられない:

左揃え列の値:

中央揃えの値:

CharacterEncoding  (1)

文字エンコードは$CharacterEncodingsの任意の値に設定できる:

"EmptyField"  (1)

デフォルトでは空の要素は空の文字列としてエキスポートされる:

空の要素に別の値を指定する:

"FillRows"  (1)

デフォルトでは完全配列がエキスポートされる:

"FillRows"->Falseを使って行の長さを維持する:

"TableHeadings"  (1)

列のカスタム見出しを使ってデータをエキスポートする:

列と行のカスタム見出しを使ってデータをエキスポートする:

列と行の連続する整数ラベルを使ってデータをエキスポートする:

"TextDelimiters"  (2)

非数値要素のデフォルトのテキスト区切りはダブルクォートである:

別の区切り文字を指定する:

テキスト区切りが挿入されないようにするためには"TextDelimiters"->""を使用する:

デフォルトでは数値的要素には区切り文字は挿入されない:

アプリケーション  (1)

ヨーロッパの国々とその人口のリストをCSVファイルにエキスポートする:

データをインポートし戻し,式に変換する:

考えられる問題  (5)

古いバージョンのWolfram言語で生成されたCSVデータは,テキストフィールドの区切りが正しくないためにバージョン11.2で想定通りにインポートできないことがある:

"TextDelimiters""" を使うと,想定された結果が得られる:

デフォルトでは"TextDelimiters"にダブルクォートを使って完全配列がエキスポートされる:

CSVを11.2より前のバージョン形式でエキスポートするためには "TextDelimiters""""FillRows"Falseを使用する:

"nnnDnnn"または"nnnEnnn"といった形式の項目は科学表記の数として解釈される:

"Numeric"オプションを使って解釈をオーバーライドする:

データの左上の角は,行と列の見出しを含むDatasetをインポートする際に失われる:

データの次元によってDatasetが異なる形となることもある: