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]は指定の要素をインポートする.
- 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[…] データ集合 Tabular[…] 表形式オブジェクト - 一般的な情報は,以下の関数ページを参照のこと.
-
Import, Export ファイルからインポートする,あるいはファイルへエキスポートする CloudImport, CloudExport クラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする ImportString, ExportString 文字列からインポートする,あるいは文字列へエキスポートする ImportByteArray, ExportByteArray バイト配列からインポートする,あるいはバイト配列へエキスポートする
要素
- 一般的なImport要素:
-
"Elements" ファイル中の有効な要素とオプションのリスト "Summary" ファイルの概要 "Rules" すべての可能な要素の規則のリスト - データ表現要素:
-
"Data" 二次元配列 "Grid" Gridオブジェクトで表された表データ "EventSeries" EventSeriesとしての表データ "RawData" 文字列の二次元配列 "Dataset" Datasetで表された表データ "Tabular" Tabularオブジェクトで表された表データ "TimeSeries" TimeSeriesとしての表データ - データ記述要素:
-
"ColumnLabels" 列の名前 "ColumnTypes" 列の名前と型の連想 "Schema" TabularSchemaオブジェクト - 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 - ヘッダをもつファイルの列の指定は,以下のいずれでもよい:
-
"col" 単一の列"col" {col1,col2,…} 列の名前 coli のリスト - メタデータ要素:
-
"ColumnCount" 列数 "Dimensions" 行数と最大列数のリスト "RowCount" 行数
インポートオプション
- Importオプション:
-
ByteOrdering Automatic バイトの順序 CharacterEncoding "UTF8ISOLatin1" ファイルで使用される生の文字コード "ColumnTypeDetectionDepth" Automatic 見出し検出に使用される行数 "CurrencyTokens" None 数値をインポートするときに省略される通貨単位 "DateStringFormat" None DateStringとして指定された日付形式 "EmptyField" "" 空のフィールドの表現方法 "FieldSeparator" "," 列を分けるために取る文字列トークン "FillRows" Automatic 行を列の最大長まで埋めるかどうか "HeaderLines" Automatic 見出しであると仮定する行の数 "IgnoreEmptyLines" True 空白行を無視するかどうか MissingValuePattern Automatic 欠損している要素を指定するために使用するパターン "NumberPoint" "." 小数点に使用する文字 "Numeric" Automatic データフィールドを数値としてインポートするかどうか(可能な場合) "QuotingCharacter" "\"" 数値でないフィールドの区切りに使われる文字 "Schema" Automatic Tabularオブジェクトの構築に使用するスキーマ "SkipInvalidLines" False 無効な行を省くかどうか "SkipLines" Automatic ファイルの最初で省く行数 "TimeColumn" Automatic "EventSeries" と "TimeSeries" 要素に含まれている時間を使用する列 - デフォルトでは,Importはデータが"UTF8"でエンコードされたテキストであるとして解釈を試みる.ファイルに保存されたバイト列で"UTF8"で表せないものがある場合は,Importは代りに"ISOLatin1"を使用する.
- CharacterEncoding -> Automaticとすると,Importはファイルの文字コードの推測を試みる.
- "HeaderLines"と"SkipLines"は以下の設定が可能である:
-
Automatic 省略または見出しとして使用する行数を自動的に決めようとする n 省略またはDataset見出しとして使用する n 行 {rows,cols} 省略または見出しとして使用する行と列 - "Schema"オプションの使用可能な設定には以下が含まれる:
-
schema 完全なTabularSchema指定 propval スキーマ特性と値(TabularSchemaのドキュメントを参照のこと) <|"prop1"val1,…|> スキーマ特性と値の連想 - Importは"DateStringFormat"の指定に従ってフォーマットされた表の項目をDateObjectに変換する.
- テキストフィールドを区切る二重引用符はデフォルトではインポートされない.
- Importは "Backend" オプションをサポートし,"Arrow"と"Table"の設定が可能である. "Arrow" 背景は通常より速くなるが,"Table" 背景は不規則な配列や異なる型の要素を含む列をサポートし,Wolfram言語の古いバージョンとも互換性がある.
エキスポートオプション
- Exportオプション:
-
Alignment None 表の列にデータがどのように並んでいるか ByteOrdering Automatic バイトの順序 CharacterEncoding "UTF8" ファイルで使用される生の文字コード "EmptyField" "" 空のフィールドの表現方法 "ExpressionFormattingFunction" Automatic Tabular オブジェクトに格納された式が文字列に変換される方法 "FillRows" False 行を列の最大長まで埋めるかどうか "IncludeQuotingCharacter" Automatic エキスポートした値の周囲に引用符を追加するかどうか "QuotingCharacter" "\"" 数値でないフィールドの区切りに使われる文字 "TableHeadings" Automatic 表の行と列の見出し - Alignmentが取り得る設定はNone,Left,Center,Rightである.
- "IncludeQuotingCharacter" には以下の値を設定できる:
-
None 値を引用符で囲まない Automatic 必要な場合にのみ値を引用符で囲む All 有効な値はすべて引用符で囲む - カンマや改行文字を含むデータフィールドは,通常,二重引用符で囲まれる.Export では,デフォルトで二重引用符が区切り文字として使用される."QuotingCharacter"を使用して,別の文字を指定できる.
- "TableHeadings" は以下の値を取ることができる:
-
None 列ラベルを省略する Automatic 列ラベルをエキスポートする {"col1","col2",…} 列ラベルのリスト {rhead,chead} 行と列に別々のラベルを指定する - "ExpressionFormattingFunction" には以下の値を設定できる:
-
Automatic 文字列へのデフォルト変換 form InputForm などFormatによってサポートされている任意の形式 f 式を文字列に変換する任意の関数 - Exportは"Backend"オプションをサポートしており,"Arrow"と"Table"が設定できる. "Arrow" 背景のほうが一般的にはより速くなるのに対し,"Table" 背景は不規則な配列や異なる型の要素を含む列をサポートし,Wolfram言語の古いバージョンとも互換性がある.
- Exportは,Wolframシステムが実行されているコンピュータシステムに従って行区切り文字をエンコードする.
例題
すべて開く すべて閉じる例 (3)
Import["ExampleData/financialtimeseries.csv"] // ShortDateListPlot[Import["ExampleData/financialtimeseries.csv"]]Import["ExampleData/financialtimeseries.csv", "Summary"]ExportString[{{"a", 1}, {"b", 2}, {"c", 3}}, "CSV"]ImportString[%]スコープ (8)
Import (4)
Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", "Dimensions"]Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", "ColumnTypes"]自動で見出しを検出するTabularオブジェクトとしてCSVファイルをインポートする:
Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", "Tabular"]Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", "Tabular", "HeaderLines" -> 0, "SkipLines" -> 1]Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", {"Data", 10}]Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", "ColumnTypes"]col = Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", {"Tabular", All, 3}]Mean[col]Export (4)
Tabularオブジェクトをエキスポートする:
tabular = Tabular[Association["RawSchema" -> Association["ColumnProperties" ->
Association["a" -> Association["ElementType" -> "Integer64"],
"b" -> Association["ElementType" -> "String"]], "KeyColumns" -> None,
"Backend" -> "WolframKernel"], "BackendData" ->
Association["ColumnData" -> DataStructure["ColumnTable",
{{TabularColumn[Association["Data" -> {{1, 2, 3, 4, 5, 6}, {}, None},
"ElementType" -> "Integer64"]], TabularColumn[Association[
"Data" -> {{3, {0, 1, 2, 3, 4, 5, 6}, "xyzxyz"}, {}, None}, "ElementType" ->
"String"]]}}]]]];input = ExportString[tabular, "CSV"]"TableHeadings"オプションを使って, Tabularオブジェクトから見出しを削除する:
ExportString[tabular, "CSV", "TableHeadings" -> None]TimeSeriesをエキスポートする:
v = {2, 1, 6, 5, 7, 4};
t = {1, 2, 5, 10, 12, 15};ts = TimeSeries[v, {t}]ExportString[ts, "CSV"]EventSeriesをエキスポートする:
v = {2, 1, 6, 5, 7, 4};
t = {1, 2, 5, 10, 12, 15};es = EventSeries[v, {t}]ExportString[es, "CSV"]QuantityArrayをエキスポートする:
qa = QuantityArray[{{1.4, 2.3}, {2.8, 2.7}, {4.2, 3.5}}, {"Seconds", "Meters"}]ExportString[qa, "CSV"]Import要素 (38)
"ColumnCount" (1)
"ColumnLabels" (1)
"ColumnTypes" (1)
"Data" (7)
Import["ExampleData/financialtimeseries.csv", "Data"]//ShortImport["ExampleData/financialtimeseries.csv"]//ShortImport["ExampleData/financialtimeseries.csv", {"Data", 5}]Import["ExampleData/financialtimeseries.csv", {"Data", {1, 5, 5}}]Import["ExampleData/financialtimeseries.csv", {"Data", 1 ;; 10}]Import["ExampleData/financialtimeseries.csv", {"Data", 5, 2}]Import["ExampleData/financialtimeseries.csv", {"Data", All, 2}]//ShortImport["ExampleData/TreesOwnedByTheCityOfChampaign.csv", {"Data", All, {"Tree Species", "Location Type"}}]//Short"Dataset" (3)
CSVファイルをDatasetとしてインポートする:
Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", "Dataset"]"HeaderLines"と"SkipLines"オプションを使って興味のあるデータだけをインポートする:
Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", "Dataset", "HeaderLines" -> 0, "SkipLines" -> 1]Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", {"Dataset", All, {"Tree Species", "Location Type"}}]"Dimensions" (2)
"Grid" (1)
CSVデータをGridとしてインポートする:
ImportString["a,b,c
d,e,f
g,h,i", {"CSV", "Grid"}]"EventSeries" (4)
EventSeriesオブジェクトとしてCSVファイルをインポートする:
Import["ExampleData/financialtimeseries.csv", "EventSeries"]Import["ExampleData/financialtimeseries.csv", {"EventSeries", 5}]Import["ExampleData/financialtimeseries.csv", {"EventSeries", {1, 5, 6}}]Import["ExampleData/financialtimeseries.csv", {"EventSeries", {1, 5, 6}}]Import["ExampleData/financialtimeseries.csv", {"EventSeries", 1 ;; 10}]"RawData" (3)
ImportString["a,b,c
1,2,3", {"CSV", "RawData"}]//InputFormImportString["a,b,c
1,2,3", {"CSV", "Data"}]//InputForm"RawData"に対してはデフォルトでは"Numeric"->Falseが使用される:
ImportString["a,b,c
1,2,3", {"CSV", "RawData"}]//InputForm"Numeric"->Trueを使用する:
ImportString["a,b,c
1,2,3", {"CSV", "RawData"}, "Numeric" -> True]//InputForm"RawData"に対してはデフォルトでは"FillRows"->Trueが使用される:
ImportString["1,2,3
a,b", {"CSV", "RawData"}]//InputForm"FillRows"->Falseを使用する:
ImportString["1,2,3
a,b", {"CSV", "RawData"}, "FillRows" -> False]//InputForm"RowCount" (1)
"Schema" (1)
TabularSchemaオブジェクトを取得する:
Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", "Schema"]"Summary" (1)
"Tabular" (8)
TabularオブジェクトとしてCSVファイルをインポートする:
Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", "Tabular"]"HeaderLines"と"SkipLines"のオプションを使って,興味のあるデータのみをインポートする:
Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", "Tabular", "HeaderLines" -> 0, "SkipLines" -> 1]Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", {"Tabular", 5}]Normal[%]Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", {"Tabular", {1, 5, 5}}]Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", {"Tabular", 1 ;; 5}]Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", {"Tabular", 5, 2}]Import["ExampleData/TreesOwnedByTheCityOfChampaign.csv", {"Tabular", All, 2}]Normal[%]//ShortImport["ExampleData/TreesOwnedByTheCityOfChampaign.csv", {"Tabular", All, {"Tree Species", "Location Type"}}]"TimeSeries" (4)
TimeSeriesオブジェクトとしてCSVファイルをインポートする:
Import["ExampleData/financialtimeseries.csv", "TimeSeries"]Import["ExampleData/financialtimeseries.csv", {"TimeSeries", 5}]Import["ExampleData/financialtimeseries.csv", {"TimeSeries", {1, 5, 6}}]Import["ExampleData/financialtimeseries.csv", {"TimeSeries", 1 ;; 10}]Importオプション (16)
CharacterEncoding (1)
文字エンコードは$CharacterEncodingsの任意の値に設定できる:
input = "é";ImportString[input, "CSV", CharacterEncoding -> "UTF8"]ImportString[input, "CSV", CharacterEncoding -> "ISOLatin1"]"ColumnTypeDetectionDepth" (1)
"CurrencyTokens" (1)
"DateStringFormat" (1)
指定された日付形式で日付をDateObject指定に変換する:
ImportString["01/19/00
05/18/02
12/14/04", "CSV", "DateStringFormat" -> {"Month", "/", "Day", "/", "YearShort"}]ImportString["01/19/00
05/18/02
12/14/04", "CSV"]"EmptyField" (1)
"FieldSeparator" (1)
"FillRows" (1)
input = "a
b,c
d";ImportString[input, {"CSV", "Data"}]ImportString[input, {"CSV", "Data"}, "FillRows" -> True, "EmptyField" -> "XXXX"]"RawData"要素については,デフォルトで配列全体がインポートされる:
ImportString[input, {"CSV", "RawData"}, "EmptyField" -> "XXXX"]"HeaderLines" (1)
ImportString["a,b,c
1,2,3
4,5,6", {"CSV", "Tabular"}]自動見出し検出が正しくない場合は,"HeaderLines" オプションを使う:
ImportString["a,b,c
d,e,f
g,h,i", {"CSV", "Tabular"}]ImportString["a,b,c
d,e,f
g,h,i", {"CSV", "Tabular"}, "HeaderLines" -> 1]ImportString["a,b,c
d,e,f
g,h,i", {"CSV", "Dataset"}, "HeaderLines" -> {0, 1}]ImportString["a,b,c
d,e,f
g,h,i", {"CSV", "Dataset"}, "HeaderLines" -> {1, 1}]"IgnoreEmptyLines" (1)
MissingValuePattern (1)
デフォルトでは,自動設定された値は欠落していると見なされる:
input = "..."ImportString[input, {"CSV", "Tabular"}]欠損要素の検出を無効にするにはMissingValuePatternNone を使う:
ImportString[input, {"CSV", "Tabular"}, MissingValuePattern -> None]ImportString[input, {"CSV", "Tabular"}, MissingValuePattern -> ("-" ~~ NumberString ) | ""]"Numeric" (1)
数を解釈するために"Numeric"->Trueを使用する:
ImportString["a,b,c
1,2,3", {"CSV", "RawData"}, "Numeric" -> True]//InputFormImportString["a,b,c
1,2,3", {"CSV", "RawData"}]//InputForm"NumberPoint" (1)
デフォルトでは,浮動小数点データの小数点の文字の指定には"."が使用される:
tab = ImportString["\"1,1\",a
\"2,53\",b", {"CSV", "Tabular"}]tab["ColumnTypes"]"NumberPoint"オプションを使って,浮動小数点データの小数点の文字を指定する:
tab = ImportString["\"1,1\",a
\"2,53\",b", {"CSV", "Tabular"}, "NumberPoint" -> ","]tab["ColumnTypes"]"QuotingCharacter" (1)
"Schema" (1)
Importでは,CSVファイルに保存されているデータから列のラベルと型が自動的に推測される:
tab = Import["ExampleData/financialtimeseries.csv", "Tabular"]tab["ColumnTypes"]"Schema"オプションを使用して,行のラベルと型を指定する:
tab = Import["ExampleData/financialtimeseries.csv", "Tabular", "Schema" -> {"ColumnKeys" -> {"Date", "Value"}, "ElementType" -> {"Date" -> "Date", "Value" -> "Real32"}}]tab["ColumnTypes"]"SkipLines" (1)
ImportString["comment
a,b,c
d,e,f
g,h,i", {"CSV", "Tabular"}, "FillRows" -> True]ImportString["comment
a,b,c
d,e,f
g,h,i", {"CSV", "Tabular"}, "SkipLines" -> 1]コメント行を省き,次の行をTabularの見出しとして使用する:
ImportString["comment
a,b,c
d,e,f
g,h,i", {"CSV", "Tabular"}, "SkipLines" -> 1, "HeaderLines" -> 1]"TimeColumn" (1)
TabularオブジェクトをCSVファイルにエキスポートする:
file = Export["file.csv", Tabular[Association["RawSchema" -> Association["ColumnProperties" ->
Association["Date" -> Association["ElementType" -> TypeSpecifier["Date"]["Integer32", "Day",
"Gregorian", None]], "Value" -> Association["ElementType" -> "Real32"]],
"KeyColumns" -> None, "Backend" -> "WolframKernel"], "Options" -> {},
"BackendData" -> Association["ColumnData" -> DataStructure["ColumnTable",
{{TabularColumn[Association["Data" -> {5, {{NumericArray[{13150, 13151, 13152, 13153, 13156},
"Integer32"], {}, None}}, None}, "ElementType" -> "Date"["Integer32", "Day",
"Gregorian", None]]], TabularColumn[Association[
"Data" -> {NumericArray[{11.819999694824219, 12.039999961853027, 12.09000015258789,
11.880000114440918, 12.430000305175781}, "Real32"], {}, None},
"ElementType" -> "Real32"]]}}]]]]];デフォルトでは,"TimeSeries"要素および"EventSeries"要素では,自動的に時間列が選択される:
Import[file, "TimeSeries"]"TimeColumn"オプションを使って時間列を指定する:
Import[file, "TimeSeries", "TimeColumn" -> "Value"]Exportオプション (8)
Alignment (1)
ExportString[{{10, 1000000, 100}, {1, 10, 10000}}, "CSV"]ExportString[{{10, 1000000, 100}, {1, 10, 10000}}, "CSV", Alignment -> Left]ExportString[{{10, 1000000, 100}, {1, 10, 10000}}, "CSV", Alignment -> Center]CharacterEncoding (1)
文字エンコードは$CharacterEncodingsの任意の値に設定できる:
input = "é";ExportString[input, "CSV", CharacterEncoding -> "UTF8"]ExportString[input, "CSV", CharacterEncoding -> "ISOLatin1"]"EmptyField" (1)
"ExpressionFormattingFunction" (1)
デフォルトでは,Export は列の種類に応じて文字列への変換が異なる:
tab = Import["ExampleData/USstates.arrow", {"Tabular", 1 ;; 5}]ColumnTypes[tab]ExportString[tab, "CSV"]"ExpressionFormattingFunction"->InputForm を使うと,Wolfram言語に入力するための適切な表現の文字列を得る:
ExportString[tab, "CSV", "ExpressionFormattingFunction" -> InputForm]//ShortExportString[tab, "CSV", "ExpressionFormattingFunction" -> Function[x, ToString[x, StandardForm]]]//Short"FillRows" (1)
ExportString[{{1}, {1.0, 2.0}, {"one", "two", "three"}}, "CSV"]"FillRows"Trueを使って完全な配列をエキスポートする:
ExportString[{{1}, {1.0, 2.0}, {"one", "two", "three"}}, "CSV", "FillRows" -> True]"IncludeQuotingCharacter" (1)
デフォルトでは,Export は引用符を必要とする値の引用符のみをエキスポートする:
ExportString[{{"numbers", "strings"}, {3, "a"}, {5, "b"}, {7, "c"}}, "CSV"]"IncludeQuotingCharacter"All を使うと,すべての値を引用符で囲む:
ExportString[{{"numbers", "strings"}, {3, "a"}, {5, "b"}, {7, "c"}}, "CSV", "IncludeQuotingCharacter" -> All]"IncludeQuotingCharacter"Noneを使うと,すべての値を引用符なしでエキスポートする.ただし,見出しには常に引用符が付いていることに注意:
ExportString[{{"numbers", "strings"}, {3, "a"}, {5, "b"}, {7, "c"}}, "CSV", "IncludeQuotingCharacter" -> None]"QuotingCharacter" (1)
ExportString[{{"numbers", "strings"}, {3, "a"}, {5, "b"}, {7, "c"}}, "CSV"]ExportString[{{"numbers", "strings"}, {3, "a"}, {5, "b"}, {7, "c"}}, "CSV", "QuotingCharacter" -> "*"]"QuotingCharacter"->"" を使うと,すべての値を引用符なしでエキスポートする.ただし,見出しには常に引用符が付いていることに注意:
ExportString[{{"numbers", "strings"}, {3, "a"}, {5, "b"}, {7, "c"}}, "CSV", "QuotingCharacter" -> ""]"TableHeadings" (1)
ExportString[{{"numbers", "strings"}, {3, "a"}, {5, "b"}, {7, "c"}}, "CSV"]"TableHeadings"Noneを使うと,行の見出しを省略できる:
ExportString[{{"numbers", "strings"}, {3, "a"}, {5, "b"}, {7, "c"}}, "CSV", "TableHeadings" -> None]ExportString[{{3, "a"}, {5, "b"}, {7, "c"}}, "CSV", "TableHeadings" -> {c1, c2}]ExportString[{{3, "a"}, {5, "b"}, {7, "c"}}, "CSV", "TableHeadings" -> {{r1, r2, r3}, {c1, c2}}]アプリケーション (1)
ヨーロッパの国々とその人口のリストをCSVファイルにエキスポートする:
props = {"Name", "Area", "Population", "GDP"};list = EntityValue[EntityClass["Country", "GroupOf7"], props]Export["G7.csv", list, TableHeadings -> props, "ExpressionFormattingFunction" -> InputForm]ToExpression /@ Import["G7.csv", "Dataset", "HeaderLines" -> 1]考えられる問題 (14)
行の列数が異なる不規則な配列の場合,いくつかの行は無効であると考えられる:
str = "1
1,2
1,2,3
1,2,3,4
1,2,3,4,5"ImportString[str, "CSV"]"Backend""Table" を使うと,これらの行を省略せずにインポートする:
ImportString[str, "CSV", "Backend" -> "Table"]"nnnEnnn" の形式の項目は科学表記の数として解釈される:
ImportString["2a3,2b2,2c3,2d3,2e3,2f3,2g3", "CSV"]"Numeric"オプションを使って解釈をオーバーライドする:
ImportString["2a3,2b2,2c3,2d3,2e3,2f3,2g3", "CSV", "Numeric" -> False]ImportString["1.0000174", "CSV"]ImportString["1.0000174", "CSV", "Numeric" -> False]バージョン14.3以降,いくつかの表現は-Head-形式を使って文字列に変換される:
ExportString[{{ByteArray[{1, 2, 3}], "b"}}, "CSV"]"ExpressionFormattingFunction"->InputFormを使って前の結果を得る:
ExportString[{{ByteArray[{1, 2, 3}], "b"}}, "CSV", "ExpressionFormattingFunction" -> InputForm]"Backend"->"Table"を使って前の結果を得る:
ExportString[{{ByteArray[{1, 2, 3}], "b"}}, "CSV", "Backend" -> "Table"]バージョン14.2以降では,通貨トークンは自動的に省略されない:
ImportString["$1.99,£5.99
$1.99,£5.99", "CSV"]"CurrencyTokens"オプションを使って,通貨トークンを省略する:
ImportString["$1.99,£5.99
$1.99,£5.99", "CSV", "CurrencyTokens" -> {{"$", "£"}, {"TraditionalForm¢", "p"}}]バージョン14.2以降では,整数値の列がDeveloper`$MaxMachineIntegerより大きい数の場合は,引用符が追加される:
ExportString[{1, 2, 2 ^ 70}, "CSV"]"IncludeQuotingCharacter"->Noneを使って以前のバージョンと同じ結果を得ることができる:
ExportString[{1, 2, 2 ^ 70}, "CSV", "IncludeQuotingCharacter" -> None]バージョン14.2以降ではいくつかの文字列は自動的に欠落しているものと見なされる:
ImportString["NA,EU", "CSV"]MissingValuePatternNone を使うと,この動作を無視できる:
ImportString["NA,EU", "CSV", MissingValuePattern -> None]バージョン14.2以降では,小数部が0の実数は整数としてエクスポートされる:
ExportString[{{1, 2.}, {3, 4.}}, "CSV"]"Backend"->"Table"を使って,以前のバージョンと同じ結果を得ることができる:
ExportString[{{1, 2.}, {3, 4.}}, "CSV", "Backend" -> "Table"]ImportString["\"a\",\"b\",\"c\"
1,2,3
\"a\",\"b\",\"c\"
", "CSV"]//InputForm列内の型が異なる種類であることが予想される場合は,"Backend""Table"を使う:
ImportString["\"a\",\"b\",\"c\"
1,2,3
\"a\",\"b\",\"c\"
", "CSV", "Backend" -> "Table"]//InputFormバージョン14.2以降では,Developer`$MaxMachineIntegerより大きい整数は実数としてインポートされる:
csvString = ExportString[{2 ^ 65}, "CSV"]ImportString[csvString, "CSV"]"Backend"->"Table"を使って,以前のバージョンと同じ結果を得ることができる:
ImportString[csvString, "CSV", "Backend" -> "Table"]バージョン14.2以降では,Tabularオブジェクトの日付と時刻の列はDateStringを使ってエキスポートされる:
tabular = ToTabular[{"date" -> RandomDate[Today, 3, TimeZone -> -3], "time" -> RandomTime[Today, 3, TimeZone -> -3]}, "Columns"]tabular["ColumnTypes"]ExportString[tabular, "CSV"]"Backend"->"Table"を使って, 以前のバージョンと同じ結果を得ることができる:
ExportString[tabular, "CSV", "Backend" -> "Table"]Wolfram言語の古いバージョンから生成されたCSVデータの一部は正しく区切られていない可能性があり,バージョン11.2以降では期待通りにインポートされない:
TextGrid[ImportString["11,12,13
21,Missing[\"Uncertain\", {\"giant\", \"subgiant\"}],23
31,32,33", "CSV"], Frame -> All]"QuotingCharacter"""を使うと,期待通りの結果が得られる:
TextGrid[ImportString["11,12,13
21,Missing[\"Uncertain\", {\"giant\", \"subgiant\"}],23
31,32,33", "CSV", "QuotingCharacter" -> ""], Frame -> All]データの左上の角は,行と列の見出しを含むDatasetをインポートする際に失われる:
ImportString["a,b,c
d,e,f
g,h,i", {"CSV", "Dataset"}, "HeaderLines" -> {1, 1}]データの次元によってDatasetが異なる形となることもある:
ImportString["a,b,c
d,e,f
g,h,i", {"CSV", "Dataset"}, "HeaderLines" -> {0, 1}]Dimensions[%]ImportString["a,b,c,d,e,f,g,h
i,j,k,l,m,n,o,p
q,r,s,t,u,v,w,x", {"CSV", "Dataset"}, "HeaderLines" -> {0, 1}]Dimensions[%]関連するガイド
-
▪
- 基本形式 ▪
- インポートとエキスポート ▪
- 全形式のリスト ▪
- リスト操作 ▪
- 行列と線形代数 ▪
- 数値データ ▪
- 数値データ形式 ▪
- 統計 ▪
- 表とスプレッドシート形式 ▪
- 時系列と事象系列の形式
履歴
1999 で導入 (4.0) | 2019 で更新 (12.0) ▪ 2025 (14.2) ▪ 2025 (14.3) ▪ 2026 (15.0)