CSV (.csv)
- ImportとExportはCSV形式を完全にサポートし,種々のデータ変換およびフォーマットオプションを提供する.
- ImportはCやFortranの表記法を含む一般的な数の形式を自動的に認識する.
- 小数点のない数は整数としてインポートされる.
予備知識
-
- 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,…},…} データの行のリスト array SparseArray,QuantityArray等の配列 tseries TimeSeries,EventSeries,TemporalDataオブジェクト Dataset[…] データ集合 - 一般的な情報は,以下の関数ページを参照のこと.
-
Import, Export ファイルからインポートする,あるいはファイルへエキスポートする CloudImport, CloudExport クラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする ImportString, ExportString 文字列からインポートする,あるいは文字列へエキスポートする ImportByteArray, ExportByteArray バイト配列からインポートする,あるいはバイト配列へエキスポートする
Import要素
- 一般的なImport要素:
-
"Elements" ファイル中の有効な要素とオプションのリスト "Summary" ファイルの概要 "Rules" すべての可能な要素の規則のリスト - データ表現要素:
-
"Data" 二次元配列 "Grid" Gridオブジェクトで表された表データ "RawData" 文字列の二次元配列 "Dataset" Datasetで表された表データ - ImportとExportはデフォルトで"Data"要素を使用する.
- 任意の要素 elem のデータの部分的なインポートにおいて,部分要素は{elem,rows,cols}という形式で行と列の指定をすることができる.rows と cols は以下のいずれでもよい:
-
n n 番目の行または列 -n 最後から数える n;;m n から m まで n;;m;;s n から m までステップ s で {n1,n2,…} 特定の行または列 ni - メタデータ要素:
-
"Dimensions" 行数と最大列数のリスト "MaxColumnCount" 列の最大数 "RowCount" 行数
オプション
- ImportとExportのオプション:
-
"EmptyField" "" 空のフィールドの表現方法 "TextDelimiters" "\"" 数値でないフィールドの区切りに使われる文字 - コンマと行区切りを含むデータフィールドは通常ダウブルクォート文字でラップされる.デフォルトではExportは区切り文字としてダブルクォート文字を使用する.別の文字は"TextDelimiters"を使って指定できる.
- テキストフィールドを区切るダブルクォート文字はデフォルトではインポートされない.
- Importオプション:
-
CharacterEncoding "UTF8ISOLatin1" ファイルで使用される生の文字コード "CurrencyTokens" {{"$", "", "", ""}, {"c", "", "p", "F"}} 数値をインポートするときに省略される通貨単位 "DateStringFormat" None DateStringとして指定された日付形式 "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オプション:
-
Alignment None 表の列にデータがどのように並んでいるか CharacterEncoding "UTF8" ファイルで使用される生の文字コード "FillRows" False 行を列の最大長まで埋めるかどうか "TableHeadings" None 表の行と列の見出し - Alignmentが取り得る設定はNone,Left,Center,Rightである.
- "TableHeadings" は以下の値を取ることができる:
-
None ラベルなし Automatic 列と行に連続する整数ラベルを与える {"col1","col2",…} 列のラベルのリスト {rhead,chead} 行と列に別々のラベルを指定する - Exportは,Wolframシステムが実行されているコンピュータシステムに従って行区切り文字をエンコードする.
例題
すべて開くすべて閉じる例 (3)
スコープ (4)
Datasetをエキスポートする:
Valuesを使ってデータセットから見出しを取り除く:
"HeaderLines"オプションを使って表見出しをインポートする:
TimeSeriesをエキスポートする:
EventSeriesをエキスポートする:
QuantityArrayをエキスポートする:
Import要素 (17)
Importオプション (10)
CharacterEncoding (1)
文字エンコードは$CharacterEncodingsの任意の値に設定できる:
"CurrencyTokens" (1)
"CurrencyTokens"->Noneを使うとすべての通過トークンが含まれる:
"DateStringFormat" (1)
指定された日付形式で日付をDateObject指定に変換する:
"Numeric" (1)
数を解釈するために"Numeric"->Trueを使用する:
"SkipLines" (1)
Exportオプション (7)
CharacterEncoding (1)
文字エンコードは$CharacterEncodingsの任意の値に設定できる:
"FillRows" (1)
"FillRows"->Falseを使って行の長さを維持する:
"TableHeadings" (1)
考えられる問題 (5)
古いバージョンのWolfram言語で生成されたCSVデータは,テキストフィールドの区切りが正しくないためにバージョン11.2で想定通りにインポートできないことがある:
"TextDelimiters""" を使うと,想定された結果が得られる:
デフォルトでは"TextDelimiters"にダブルクォートを使って完全配列がエキスポートされる:
CSVを11.2より前のバージョン形式でエキスポートするためには "TextDelimiters"""と"FillRows"Falseを使用する:
"nnnDnnn"または"nnnEnnn"といった形式の項目は科学表記の数として解釈される:
"Numeric"オプションを使って解釈をオーバーライドする:
データの左上の角は,行と列の見出しを含むDatasetをインポートする際に失われる:
データの次元によってDatasetが異なる形となることもある: