CastColumns[tab,{col1type1,…}]
Tabularオブジェクト tab 内の coliの型を typeiに変える.
CastColumns
CastColumns[tab,{col1type1,…}]
Tabularオブジェクト tab 内の coliの型を typeiに変える.
詳細
- CastColumnsは,通常,Tabularオブジェクトの列の型を変換する(例:文字列を数や日付に変換する)ために使われる.
- 型 typeiは,TabularColumnとして表された coliの要素の型を参照する.要素型には以下がある.
-
"MachineInteger" 機械サイズ整数 "MachineReal" 機械サイズ実数 "Around"::[…] 不確かさがある数 "Boolean" ブール値(TrueまたはFalse) "ByteArray"::[…] バイナリデータを表すByteArray要素 "Date"::[…] 任意粒度(日,月,μs 等)の暦の日付 "Entity"::[…] 指定領域の実体 "GeoPosition"::[…] 任意の測地系あるいは地理モデルにおける地理位置 "InertExpression" 使われるまで評価されない一般的な式 "ListVector"::[type] 指定の type の要素のリスト "ListVector"::[type,n] 指定の type の要素の長さ n のリスト "ListTuple"::[type1,type2,…] 型 type1, type2, …の要素のリスト "Null" Missing式 "Quantity"::[type,unit] type の大きさで共通 unit を持つ数量 "String" 文字列 "Time"::[…] TimeObjectにおけるような一日の時点 - 数値要素は,以下のようにより具体的に与えることができる.
-
"Integer8" 符号付き8ビット整数(
から127まで)"UnsignedInteger8" 整数(0から255まで) "Integer16" 符号付き16ビット整数(
から
まで)"UnsignedInteger16" 整数(0から65535まで) "Integer32" 符号付き32ビット整数(
から
まで)"UnsignedInteger32" 整数(0から
まで)"Integer64" 符号付き64ビット整数(
から
まで)"UnsignedInteger64" 整数(0から
まで)"Real32" 単精度実数(32ビット) "Real64" 倍精度実数(64ビット) "ComplexReal32" 単精度複素数 "ComplexReal64" 倍精度複素数
例題
すべて開く すべて閉じる例 (1)
tab = ToTabular[<|"a" -> {1, 2, 3}, "b" -> {1., 4., 8.}|>, "Columns"]ColumnTypes[tab]"Integer64"の列を"Real64"に変更する:
CastColumns[tab, "a" -> "Real64"]ColumnTypes[%]スコープ (4)
tab = Tabular[{{"2024Nov12", 100}, {"2024Nov13", 102}, {"2024Nov14", 99}}, {"date", "blood sugar"}]ColumnTypes[tab]CastColumns[tab, "date" -> "Date"]ColumnTypes[%]数値データが文字列として記録されているTabularオブジェクトを取得する:
tab = Tabular[Association["RawSchema" -> Association["ColumnProperties" ->
Association["date" -> Association["ElementType" -> TypeSpecifier["Date"]["Integer64", "Day",
"Gregorian", -6.]], "val" -> Association["ElementType" -> "String"]],
"KeyColumns" -> None, "Backend" -> "WolframKernel"], "Options" -> {},
"BackendData" -> Association["ColumnData" -> DataStructure["ColumnTable",
{{TabularColumn[Association["Data" -> {6, {{{1230789600000, 1230876000000, 1230962400000,
1231048800000, 1231135200000, 1231221600000}, {}, None}}, None},
"ElementType" -> "Date"["Integer64", "Day", "Gregorian", -6.],
"CachedOriginalExpression" -> {DateObject[{2009, 1, 1}, "Day", "Gregorian", -6.],
DateObject[{2009, 1, 2}, "Day", "Gregorian", -6.], DateObject[{2009, 1, 3}, "Day",
"Gregorian", -6.], DateObject[{2009, 1, 4}, "Day", "Gregorian", -6.],
DateObject[{2009, 1, 5}, "Day", "Gregorian", -6.], DateObject[{2009, 1, 6}, "Day",
"Gregorian", -6.]}]], TabularColumn[Association[
"Data" -> {{3, {0, 5, 10, 15, 19, 24, 29}, "-6.06-2.83-4.221.28-7.17-4.83"}, {}, None},
"ElementType" -> "String"]]}}]]]];ColumnTypes[tab]CastColumns[tab, "val" -> "Real64"]ColumnTypes[%]Tabularオブジェクトの列のベクトル型を変える:
tab = ToTabular[<|"a" -> {1, 2, 3}, "b" -> {{4, 5}, Missing[], {6, 7}}, "c" -> {1., 4., 8.}|>, "Columns"]ColumnTypes[tab]CastColumns[tab, "b" -> "ListVector"::["Real64", 2]]ColumnTypes[%]Tabular[{{1, 2, 3}, {4, 5, 6}}, {"a", "b", "c"}]CastColumns[%, {"a", "c"} -> "Real64"]アプリケーション (2)
売上げデータ (2)
"tsv"形式の小売りデータをTabularオブジェクトに取得する:
data = Import["ExampleData/RetailSales.tsv", "Tabular", "HeaderLines" -> 1]ColumnTypes[data]CastColumns[data, "Date" -> "Date"]Select[%, SameQ[#City, "Paris"]&]"TimeColumn"として使われている"Date"でTimeSeriesオブジェクトを作成する:
FromTabular[%, "TimeSeries", <|"TimeColumn" -> "Date"|>]DateListPlot[% -> "Sales"]米国のコロナウイルス感染症データの大きなデータ集合を取得する:
data = ResourceData["Sample Tabular Data: US Covid"];Dimensions[data]data[[ ;; 5]]FIPSコードは米国の郡を一意的に識別する数であるが,"fips"列は文字列型である:
ColumnTypes[data]["fips"]RepeatedTiming[newdata = CastColumns[data, "fips" -> "Integer"];]Take[newdata, 5]ColumnTypes[newdata]["fips"]特性と関係 (4)
CastColumns[tab,typerules]を使ってTabularオブジェクト tab の列の型を変える:
tab = Tabular[Association["RawSchema" -> Association["ColumnProperties" ->
Association["date" -> Association["ElementType" -> "String"],
"blood sugar" -> Association["ElementType" -> "Integer64"]], "KeyColumns" -> None,
"Backend" -> "WolframKernel"], "BackendData" ->
Association["ColumnData" -> DataStructure["ColumnTable",
{{TabularColumn[Association["Data" -> {{3, {0, 9, 18}, "2024Nov122024Nov13"}, {}, None},
"ElementType" -> "String"]], TabularColumn[Association["Data" -> {{100, 102}, {}, None},
"ElementType" -> "Integer64"]]}}]]]];CastColumns[tab, {"date" -> "Date", "blood sugar" -> "Real"}]Tabular[tab,<|"ElementType"typerules|>]を使っても同じ結果が得られる:
Tabular[tab, <|"ElementType" -> {"date" -> "Date", "blood sugar" -> "Real"}|>]ToTabular[tab,"Rows",<|"ElementType"typerules|>]を使ってもそうである:
ToTabular[tab, "Rows", <|"ElementType" -> {"date" -> "Date", "blood sugar" -> "Real"}|>]文字列の列があるTabularオブジェクトを取得する:
tab = Tabular[Association["RawSchema" -> Association["ColumnProperties" ->
Association["date" -> Association["ElementType" -> "String"],
"blood sugar" -> Association["ElementType" -> "String"]], "KeyColumns" -> None,
"Backend" -> "WolframKernel"], "BackendData" ->
Association["ColumnData" -> DataStructure["ColumnTable",
{{TabularColumn[Association["Data" -> {{3, {0, 9, 18}, "2024Nov122024Nov13"}, {}, None},
"ElementType" -> "String"]], TabularColumn[Association[
"Data" -> {{3, {0, 3, 6}, "100102"}, {}, None}, "ElementType" -> "String"]]}}]]]];CastColumnsを使う代りに,新たな列型で新たな概要が構築できる:
schema = TabularSchema[<|"ColumnProperties" -> <|"date" -> <|"ElementType" -> "Date"|>, "blood sugar" -> <|"ElementType" -> "Real64"|>|>|>]Tabularオブジェクトにスキーマを適用する:
Tabular[tab, schema]CastColumnsの動作は,TransformColumnsに適切な関数を使うことで再現できる:
tab = Tabular[Association["RawSchema" -> Association["ColumnProperties" ->
Association["date" -> Association["ElementType" -> "String"],
"blood sugar" -> Association["ElementType" -> "Integer64"]], "KeyColumns" -> None,
"Backend" -> "WolframKernel"], "Options" -> {},
"BackendData" -> Association["ColumnData" -> DataStructure["ColumnTable",
{{TabularColumn[Association["Data" -> {{3, {0, 9, 18}, "2024Nov122024Nov13"}, {}, None},
"ElementType" -> "String"]], TabularColumn[Association["Data" -> {{100, 102}, {}, None},
"ElementType" -> "Integer64"]]}}]]]];スペースを含む文字列の列キーには明示的な引用符を使用しなければならない:
TransformColumns[tab, {"date" -> (Cast[#date, "Date"]&), "blood sugar" -> (N[#"blood sugar"]&)}]血糖値の実数値の列を含むTabularオブジェクトを取得する:
tab = Tabular[Association["RawSchema" -> Association["ColumnProperties" ->
Association["date" -> Association["ElementType" -> "String"],
"blood sugar" -> Association["ElementType" -> "Real64"]], "KeyColumns" -> None,
"Backend" -> "WolframKernel"], "BackendData" ->
Association["ColumnData" -> DataStructure["ColumnTable",
{{TabularColumn[Association["Data" -> {{3, {0, 9, 18}, "2024Nov122024Nov13"}, {}, None},
"ElementType" -> "String"]], TabularColumn[Association[
"Data" -> {{100., 102.3}, {}, None}, "ElementType" -> "Real64"]]}}]]]];bsugar = tab[All, "blood sugar"]CastColumnsは,事実上,各列にAutomatic変換法を使う:
CastColumns[tab, "blood sugar" -> "Integer32"]実数が常に忠実に整数に投影される訳ではないので,このような変換はこの場合は失敗する:
TabularColumn[bsugar, "Integer32"]整数に変換するときは,実数の丸めを含む明示的な変換法でTabularColumnを使う:
ibsugar = TabularColumn[bsugar, "Integer32", <|"ConversionMethod" -> "Round"|>]ibsugar//NormalInsertColumnsを使って新規列を再度挿入する:
InsertColumns[tab, "blood sugar" -> ibsugar]関連するガイド
-
▪
- 表形式データのクリーニング ▪
- 時系列の処理 ▪
- 表形式の変換 ▪
- 表形式処理の概要 ▪
- 事象系列の処理
テキスト
Wolfram Research (2025), CastColumns, Wolfram言語関数, https://reference.wolfram.com/language/ref/CastColumns.html (2026年に更新).
CMS
Wolfram Language. 2025. "CastColumns." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2026. https://reference.wolfram.com/language/ref/CastColumns.html.
APA
Wolfram Language. (2025). CastColumns. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CastColumns.html
BibTeX
@misc{reference.wolfram_2026_castcolumns, author="Wolfram Research", title="{CastColumns}", year="2026", howpublished="\url{https://reference.wolfram.com/language/ref/CastColumns.html}", note=[Accessed: 18-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_castcolumns, organization={Wolfram Research}, title={CastColumns}, year={2026}, url={https://reference.wolfram.com/language/ref/CastColumns.html}, note=[Accessed: 18-August-2026]}