TSV (.tsv)

予備知識

    • MIMEタイプ:text/tab-separated-values
    • TSV表データ形式.
    • フィールドの区切り文字としてタブを使用して,数値,テキスト情報の記録を行として保管する.
    • TSVはTab-Separated Valuesの頭字語である.
    • テキスト形式.
    • CSVに類似する.

ImportとExport

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

Import要素

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

オプション

  • ImportExportのオプション:
  • "EmptyField"""空のフィールドの表現方法
    "QuotingCharacter""\""数値でないフィールドの区切りに使われる文字
  • コンマと行区切りを含むデータフィールドは通常ダウブルクォート文字でラップされる.デフォルトではExportは区切り文字としてダブルクォート文字を使用する.別の文字は"QuotingCharacter"を使って指定できる.
  • テキストフィールドを区切るダブルクォート文字はデフォルトではインポートされない.
  • Importオプション:
  • CharacterEncoding"UTF8ISOLatin1"ファイルで使用される生の文字コード
    "ColumnTypeDetectionDepth"Automatic見出し検出のために使用される行数
    "CurrencyTokens"None数値的な値をインポートする際に省く通貨単位
    "DateStringFormat"NoneDateString指定で与えられた日付の形式
    "FieldSeparator""\t"列を分割するために取られる文字列トークン
    "FillRows"Automatic行を列の最大長まで埋めるかどうか
    "HeaderLines"Automatic見出しであると仮定する行の数
    "IgnoreEmptyLines"False空白行を無視するかどうか
    MissingValuePatternAutomatic欠落している要素を指定するために使用するパターン
    "NumberPoint""."小数点の文字列
    "Numeric"Automatic可能な場合にデータフィールドを数としてインポートするかどうか
    "Schema"AutomaticTabular オブジェクトを構築するために使われるスキーマ
    "SkipInvalidLines"False無効な行を省くかどうか
    "SkipLines"Automaticファイルの最初の省く行数
  • デフォルトでは,Importはデータが"UTF8"で符号化されたテキストであるとして解釈を試みる.ファイルに保存されたバイト列で"UTF8"で表せないものがある場合は,Importは代りに"ISOLatin1"を使用する.
  • CharacterEncoding -> Automaticとすると,Importはファイルの文字コードの推測を試みる.
  • "HeaderLines""SkipLines"は以下の設定が可能である:
  • Automatic省略する行数または見出しとして使用する行数を自動的に決定しようとする
    n省略またはDataset見出しとして使用する n
    {rows,cols}省略または見出しとして使用する行と列
  • Import"DateStringFormat"の指定に従ってフォーマットされた表の項目をDateObjectに変換する.
  • Exportオプション:
  • AlignmentNone表の列にデータがどのように並んでいるか
    CharacterEncoding"UTF8"ファイルで使用される生の文字コード
    "FillRows"False行を列の最大長まで埋めるかどうか
    "IncludeQuotingCharacter"Automaticエキスポートした値を囲む引用符を追加するかどうか
    "TableHeadings"Automatic表の行と列の見出し
  • Alignmentが取り得る設定はNoneLeftCenterRightである.
  • "IncludeQuotingCharacter"は以下の値に設定することができる:
  • None値を引用符で囲まない
    Automatic必要な場合にのみ値を引用符で囲む
    All有効な値はすべて引用符で囲む
  • "TableHeadings"は以下の値を取ることができる:
  • None列ラベルを省略する
    Automatic列ラベルをエキスポートする
    {"col1","col2",}列ラベルのリスト
    {rhead,chead}行と列に別々のラベルを指定する
  • Exportは,Wolframシステムが実行されているコンピュータシステムに従って行区切り文字を符号化する.

例題

すべて開くすべて閉じる

  (3)

TSVをインポートする:

TSVファイルの概要をインポートする:

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

スコープ  (8)

Import  (4)

CSVファイルからメタデータをインポートする:

見出しを自動で検出する Tabular オブジェクトとしてTSVファイルをインポートする:

最初の行を飛ばして,見出しなしでインポートする:

TSVのサンプル行をインポートする:

列ラベルとその型を見て,ファイルの一列を分析する.

一つの列のすべての値を取得する:

その平均を計算する:

Export  (4)

Tabularオブジェクトをエキスポートする:

"TableHeadings"オプションを使って,Tabular オブジェクトから見出しを削除する:

TimeSeriesをエキスポートする:

EventSeriesをエキスポートする:

QuantityArrayをエキスポートする:

Import要素  (26)

"ColumnCount"  (1)

TSVファイルから列数を取得する:

"ColumnLabels"  (1)

TSVファイルから推測される列ラベルを取得する:

"ColumnTypes"  (1)

TSVファイルから推測される列の型を取得する:

"Data"  (6)

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

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

TSVファイルの一行をインポートする:

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

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

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

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

"Dataset"  (3)

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

"HeaderLines"を使って最初の行を列見出しに使用する:

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

"Dimensions"  (1)

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

ファイル内のすべての行が同じ列数でない場合,行のいくつかは無効と考えられるかもしれない:

"Grid"  (1)

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

"RawData"  (3)

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

"Data"と比較する:

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

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

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

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

"RowCount"  (1)

TSVファイルの行数を取得する:

"Schema"  (1)

TabularSchemaオブジェクトを取得する:

"Summary"  (1)

TSVファイルの概要:

"Tabular"  (6)

TabularオブジェクトとしてCSVファイルをインポートする:

"HeaderLines""SkipLines"オプションを使って,興味のあるデータのみをインポートする:

一つの行をインポートする:

複数の行をインポートする:

最初の5行をインポートする:

与えられた行と列の単一の要素をインポートする:

一列をインポートする:

Importオプション  (15)

CharacterEncoding  (1)

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

"ColumnTypeDetectionDepth"  (1)

デフォルトでは,最初から何十かの行と列だけを使って列の型を検出する:

より多くの行を使って列の型を検出する:

"CurrencyTokens"  (1)

通貨トークンは自動的には省略しない:

"CurrencyTokens" オプションを使って,選択された通貨トークンを省略する:

"DateStringFormat"  (1)

指定の日付形式を使って日付をDateObjectに変換する:

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

"EmptyField"  (1)

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

"FieldSeparator"  (1)

デフォルトでは,フィールド区切りに"\t"が使われる:

フィールド区切りとして","を使う:

"FillRows"  (1)

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

行を充填する:

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

"HeaderLines"  (1)

デフォルトで,見出し行は自動的に検出される:

自動見出し検出が正しくない場合は"HeaderLines" オプションを使う:

行見出しを指定する:

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

"IgnoreEmptyLines"  (1)

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

MissingValuePattern  (1)

デフォルトでは,値の自動設定はないと考えられる:

MissingValuePatternNone を使って,欠落した要素の検出ができないようにする:

文字列パターンを使って欠落要素を見付ける:

"Numeric"  (1)

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

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

"NumberPoint"  (1)

デフォルトでは,浮動小数データの小数点の文字には"." が使用される:

"NumberPoint" オプションを使って浮動小数点のデータの小数点の文字を指定する:

"QuotingCharacter"  (1)

デフォルトの引用符は,二重引用符である:

異なる引用符を指定できる:

"Schema"  (1)

Import はTSVファイルに保存されたデータから列ラベルとタイプを自動的に推測する:

"Schema"オプションを使って列の型を指定する:

"SkipLines"  (1)

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

コメント行を省略する:

コメント行を飛ばし,Tabular 見出しとして次の行を使う:

Exportオプション  (7)

Alignment  (1)

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

左揃え列の値:

中央揃えの値:

CharacterEncoding  (1)

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

"EmptyField"  (1)

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

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

"FillRows"  (1)

デフォルトでは行の長さは保たれる:

"FillRows"->True を使って完全な配列をエキスポートする:

"IncludeQuotingCharacter"  (1)

デフォルトでは,Exportは必要な値にだけ引用符を付けてエキスポートする

"IncludeQuotingCharacter"Allを使うとすべての値に引用符を付ける:

"IncludeQuotingCharacter"None を使うと,すべての値を引用符なしでエキスポートする.見出しにはいつも引用符がついていることに注意:

"QuotingCharacter"  (1)

数字ではない要素について,デフォルトの引用符は二重引用符である:

異なる引用符の文字を指定する:

Use "QuotingCharacter"->"" を使ってすべての値を引用符なしでエキスポートする.見出しにはいつも引用符がついていることに注意:

"TableHeadings"  (1)

デフォルトでは,列の見出しはエキスポートされる:

"TableHeadings"Noneを使って列の見出しを省略する:

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

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

アプリケーション  (1)

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

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

考えられる問題  (12)

ファイル内のすべての行が同じ列数を持たない場合,いくつかの行は無効と考えられる:

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

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

数値の解釈により精度が失われる可能性がある:

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

バージョン14.2からは,通貨のトークンが自動的には省略されない.

"CurencyTokens"オプションを使うと通貨のトークンが省略できる:

バージョン14.2からは,整数値の行にDeveloper`$MaxMachineIntegerより大きい数が含まれるときは引用符のついた文字が追加される:

"IncludeQuotingCharacter"->Noneを使うと,以前と同じ結果を得ることができる:

バージョン14.2からは,一部の文字列は自動的に空白とみなされる:

MissingValuePatternNone を使うと,この解釈はオーバーライドできる:

バージョン14.2からは,小数部分が0の実数は整数としてエキスポートされる:

"Backend"->"Table"を使うと以前と同じ結果が得られる:

バージョン14.2からは,Developer`$MaxMachineIntegerより大きい整数は実数としてインポートされる:

"Backend"->"Table"を使うと以前と同じ結果が得られる:

バージョン14.2からは,Tabularオブジェクトの日付と時間の行はDateStringを使ってエキスポートされる:

"Backend"->"Table" を使うと,以前と同じ結果を得られる:

Wolfram言語の古いバージョンから生成された一部のTSVデータでは,テキストフィールドが誤って区切られている可能性があり,バージョン11.2以降では期待どおりにインポートされない:

"QuotingCharacter""" を使うと事前に予想された結果を与えられる:

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

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