TransformColumns[tab,ncolf]
関数 f を各列に適用して表形式データ tab を変換することで,名前が ncol の新規列を加える.
TransformColumns[tab,{ncol1f1,ncol2f2,…}]
関数 fi を各行に連続的に適用することで,新たにいくつかの列 ncoliを加える.
TransformColumns[transfs]
表形式データに適用可能なTransformColumnsの演算子形を表す.
TransformColumns
TransformColumns[tab,ncolf]
関数 f を各列に適用して表形式データ tab を変換することで,名前が ncol の新規列を加える.
TransformColumns[tab,{ncol1f1,ncol2f2,…}]
関数 fi を各行に連続的に適用することで,新たにいくつかの列 ncoliを加える.
TransformColumns[transfs]
表形式データに適用可能なTransformColumnsの演算子形を表す.
詳細とオプション
- TransformColumnsは,通常,他の部分は保存しつつ新規の列を作ったり変更したりするために使われる.
- 次は,表形式データ tab の可能な形である.
-
Tabular[…] 型に一貫性がある表形式オブジェクト Dataset[…] 一般的な階層型データ TimeSeries[…] サンプルされたん時点と値のペアの集合 EventSeries[…] 時間事象系列 {assoc1,assoc2,…} 共通のキーがある連想のリスト matrix 値の行列 - 列 ncoliが既に存在する場合,その列は新たに作られた列で置き換えられる. それ以外の場合は,新たな列が既存の列の後ろに加えられる.
- TransformColumns[tab,{col,ncolf}]は,ncol という名前の新規列を最後ではなく既存の列 col の後ろに加える.
- TransformColumns[atab,{f1,f2,…,fn}]は,列のキーがない表形式データ atab については,関数 fiを各行に連続的に適用することで n 個の無名の新規列を加える.
- 関数 fiは入力の表形式データ tab の各行に適用される.行は,tab に列のキーがある場合は連想<|col1val1,…|>に,tab に列のキーがない場合はリスト{val1,…}になる.
- colNothingという構文を使って col という名前の既存の列を削除することができる. »
- TransformColumns[transfs][tab]はTransformColumns[tab,transfs]に等しい.
例題
すべて開く すべて閉じる例 (3)
tab = Tabular[{{2, 2.78}, {1, 3.14}, {3, 1.68}}, {"a", "b"}]TransformColumns[tab, "c" -> Function[#b - #a]]TransformColumns[tab, {"a" -> (2#a&), "b" -> (#b / 2&)}]tab = Tabular[{{2004, 4, 1}, {2005, 4, 3}, {2006, 4, 5}}, {"a", "b", "c"}]TransformColumns[tab, "date" -> Function[DateObject[{#a, #b, #c}, "Day"]]]中米諸国の人口と面積を求め,それをTabular形式で表す:
tab = EntityValue[EntityClass["Country", "CentralAmerica"], {"Population", "Area"}, "Tabular"]TransformColumns[tab, "Density" -> Function[#Population / #Area]]スコープ (18)
変換 (7)
Tabularオブジェクト中の既存の列を変換する:
Tabular[{{1, 2}, {3, 4}}, {"a", "b"}]TransformColumns[%, "a" -> Function[#a ^ 2]]Tabularオブジェクト中の既存の列を分割する:
Tabular[{{1, {2004, 1}}, {3, {2005, 3}}, {5, {2006, 2}}}, {"a", "b"}]TransformColumns[%, {"year" -> (First[#b]&), "month" -> (Last[#b]&), "b" -> Nothing}]関数 f を持つTransformColumnsは,列に名前が付けられている場合は行全体を連想として処理する:
Tabular[{<|"c1" -> Subscript[x, 11], "c2" -> Subscript[x, 12]|>, <|"c1" -> Subscript[x, 21], "c2" -> Subscript[x, 22]|>, <|"c1" -> Subscript[x, 31], "c2" -> Subscript[x, 32]|>}]TransformColumns[%, "new" -> f]無記名の列があるTabularオブジェクトについては,行はリストとして表される:
Tabular[{{Subscript[x, 11], Subscript[x, 12]}, {Subscript[x, 21], Subscript[x, 22]}, {Subscript[x, 31], Subscript[x, 32]}}]TransformColumns[%, f]TransformColumnsの演算子形を使う:
tab = Tabular[{{1, 2}, {3, 4}, {5, 6}}, {"a", "b"}]op = TransformColumns["b" -> Function[#b + 10]];op[tab]aNothingを使って列 a を結果から削除する:
tab = Tabular[{<|"a" -> 1, "b" -> 2, "c" -> 3, "d" -> 4|>}];
TransformColumns[tab, {"e" -> (50&), "f" -> (60&), "a" -> Nothing}]TransformColumns[tab, {"e" -> (50&), "f" -> (60&), {"a", "c", "d"} -> Nothing}]tab = Tabular[{{1, 2, 3, 5}, {8, 7, 6, 4}}];
TransformColumns[tab, #1[[2]] + #1[[4]]&]関数にApplyを適用すると各列に引数が設定される:
TransformColumns[tab, Apply[#2 + #4&]]キーが一般的な式の場合は,Tabular変換のFunction本体の中でKeyを使う:
tab = ToTabular[{f[x] -> Power[Sin[x] ^ Range[5]]}, "Columns"]TransformColumns[tab, f'[x] -> Function[D[#[Key[f[x]]], x]]]TransformColumns[tab, f'[x] -> Function[D[Slot[Key[f[x]]], x]]]入力データ (3)
data = {<|"a" -> 1, "b" -> 2|>, <|"a" -> 3, "b" -> 4|>};TransformColumns[data, "a" -> Function[#a ^ 2]]TransformColumns[data, "c" -> Function[#a + #b]]Datasetオブジェクトを変換する:
dataset = Dataset[{<|"a" -> 2, "b" -> "foo"|>, <|"a" -> 3, "b" -> "bar"|>}]TransformColumns[dataset, "a" -> Function[#a ^ 2]]MatrixForm[matrix = {{1, "one"}, {2, "two"}, {3, "three"}}]TransformColumns[matrix, Total]TransformColumns[matrix, {f, g}]列ごとの演算 (4)
ColumnwiseValueを使って列の平均を値から引く:
tab = ToTabular[<|"c" -> {3.71, -2.7, -5.29, 9.33, 6.26}|>, "Columns"];
TransformColumns[tab, "c-μ" -> (#c - ColumnwiseValue[Mean[#c]]&)]tab = ToTabular[<|"c" -> {4.24, 1.14, -7.38, 6.74, 6.22, 7.5}|>, "Columns"];TransformColumns[tab, "above median" -> (#c > ColumnwiseValue[Median[#c]]&)]TransformColumns[tab, {"median" -> (ColumnwiseValue[Median[#c]]&), "above median" -> (#c > ColumnwiseValue[Median[#c]]&)}](TransformColumns["median" -> (ColumnwiseValue[Median[#c]]&)] /* TransformColumns["above_median" -> (#c > #median&)])[tab]ColumnwiseThreadを使って列全体のベクトル値変換を計算する:
tab = ToTabular[<|"v" -> {2.07, -0.75, 4.16, 7.28, 8.63, 7.93}|>, "Columns"];
TransformColumns[tab, "a" -> (ColumnwiseThread[Accumulate[#v]]&)]ColumnwiseValueを使うと各行について同じリストが得られる:
TransformColumns[tab, "alist" -> (ColumnwiseValue[Accumulate[#v]]&)]Tabularオブジェクトを取る:
tab = ToTabular[{"old" -> {a, b, c}}, "Columns"]TransformColumnsは,デフォルトで,各行に連続的に作用する:
TransformColumns[tab, "new" -> Function[Echo[#old, "row: "] + Echo[RandomInteger[5], " random: "]]]ColumnwiseValue[expr]にTransformColumnsを使うと,まず expr を一度評価し,次に各行に作用する:
TransformColumns[tab, "new" -> Function[Echo[#old, "row: "] + ColumnwiseValue[Echo[Total[#old], "total: "]]]]ColumnwiseThread[expr]にTransformColumnsを使うと,列全体に作用して expr を一度評価する:
TransformColumns[tab, "new" -> Function[ColumnwiseThread[Echo[#old, "column: "] + Echo[RandomInteger[5], " random: "]]]]列の配置 (2)
Tabularオブジェクトを取る:
tab = Tabular[{<|"a" -> 1, "b" -> 2, "c" -> 3|>, <|"a" -> 10, "b" -> 20, "c" -> 30|>}]デフォルトで,TransformColumnsは新規列を末尾に置く:
TransformColumns[tab, "new" -> Function[#b + #c]]TransformColumns[tab, {"b", "new" -> Function[#b + #c]}]TransformColumns[tab, {"a", "new" -> Function[#b + #c]}]TransformColumns[tab, {"new" -> Function[#b + #c], "a"}]tab = Tabular[{<|"a" -> 1, "b" -> 2, "c" -> 3, "d" -> 4|>}];
TransformColumns[tab, {"e" -> (50&), "f" -> (60&), "a"}]TransformColumns[tab, {"e" -> (50&), "f" -> (60&)}]TransformColumns[tab, {"e" -> (50&), "a", "b", "f" -> (60&)}]"e"を冒頭に,"f"を"b"の後ろに置いて,結果から"a"を削除する:
TransformColumns[tab, {"e" -> (50&), "a", "b", "f" -> (60&), "a" -> Nothing}]欠落したフォールバック (2)
Tabularオブジェクトを変換する際に,MissingFallbackを使って欠落値を埋める:
tab = Tabular[{{1, 3, 5}, {2, Missing[], 6}}, {"a", "b", "c"}]TransformColumns[tab, "b" -> Function[MissingFallback[#b, #a]]]TransformColumns[tab, "b" -> Function[MissingFallback[#b, #c]]]TransformColumns[tab, "b" -> Function[MissingFallback[#b, -99]]]Tabularオブジェクトを変換する際に,MissingFallbackで列の関数を使って欠落値を埋める:
tab = Tabular[{{1, 3, 5}, {2, Missing[], 6}, {7, 8, 9}}, {"a", "b", "c"}]TransformColumns[tab, "b" -> Function[MissingFallback[#b, #a + #c]]]TransformColumns[tab, "b" -> Function[MissingFallback[#b, Mean[{#a, #c}]]]]アプリケーション (4)
医療データ (1)
以下のデータには,腎臓移植患者に関する情報(死亡までの日数または特定の年齢での移植後の研究期間)が含まれている:
name = {"Statistics", "KidneyTransplant"};
ExampleData[name, "ColumnDescriptions"]Tabular[ExampleData[name], ExampleData[name, "ColumnHeadings"]]TransformColumnsを使って数値的に符号化されたデータに意味を与える:
transplants = TransformColumns[%, {"Delta" -> (#Delta /. {0 -> "dead", 1 -> "alive"}&), "Gender" -> (#Gender /. {1 -> "male", 2 -> "female"}&), "Race" -> (#Race /. {1 -> "white", 2 -> "black"}&)}]次に,カテゴリを使ってPivotTableで年単位の平均生存期間を計算する:
PivotTable[transplants, UnitConvert[Quantity[Mean[#Time], "Days"], "Years"]&, "Race", "Gender", IncludeGroupAggregates -> True]気象データ (1)
data = Tabular[IconizedObject[«JFK weather»]]data1 = Discard[data, Count[#, _Missing] > 0&]chill[t_, v_] := If[t > 10 || v < 5, t, 13.12 + 0.6215 * t + (0.3965 * t - 11.37) * (v ^ 0.16), Missing[]];新規列があるTabularオブジェクトを作成する:
TransformColumns[data1, {"date", "temperature", "wind_chill" -> Function[chill[#temperature, #"wind_speed"]]}]DateListPlot[% -> {{"date", "temperature"}, {"date", "wind_chill"}}, PlotLegends -> {"temperature", "wind_chill"}]ミード湖の水位 (1)
ts = TemporalData[TimeSeries, {{{Missing[], Quantity[708.7, "Feet"], Quantity[701.7, "Feet"],
Quantity[752.4, "Feet"], Quantity[806.6, "Feet"], Quantity[909.1, "Feet"],
Quantity[928.4, "Feet"], Quantity[925.9, "Feet"], Quantity[920.8, "Feet"], ... fication[DateObject[{1935, 1, 31}, "Day"], {2024, 6, 30, 0, 0, 0},
"EndOfMonth", "DayRange"]}, 1, {"Continuous", 1}, {"Discrete", 1}, 1,
{ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}, ValueDimensions -> 1}}, True,
14.2];Tabularオブジェクトを作成する:
tab1 = ToTabular[ts, "TimeSeries"]TransformColumnsを使って日付を年と月の列に分割し,"Date"列を削除する:
tab2 = TransformColumns[tab1, {"Year" -> Function[DateValue[#Date, "Year"]], "Month" -> Function[DateValue[#Date, "MonthName"]], "Date" -> Nothing}]可視化するために,PivotToColumnsを使ってよりコンパクトな形にする:
tab3 = PivotToColumns[tab2, "Month" -> "Value"]木データ (1)
tab = ResourceData["Sample Tabular Data: NYC Trees"]ColumnKeys[tab]TransformColumnsを使って"latitude"列と"longitude"列を結合し, GeoPositionオブジェクトの1列にしてこれを"longitude"列の後ろに置く:
newtab = TransformColumns[tab, {"longitude", "geoposition" -> Function[GeoPosition[{#latitude, #longitude}]]}]ColumnKeys[newtab]"geoposition"列を使って最初の1000本の木の場所をプロットする:
GeoGraphics[Point[Normal[newtab[ ;; 1000, "geoposition"]]]]特性と関係 (3)
TransformColumnsは,変更されていないすべての列を保持する:
tab = Tabular[{{1, 2}, {3, 4}, {5, 6}}, {"a", "b"}]TransformColumns[tab, "b" -> (#b^2&)]ConstructColumnsは,リストされた列しか保持しない:
ConstructColumns[tab, "b" -> Function[#b ^ 2]]TransformColumnsを使って列が削除できる:
tab = Tabular[{{1, 2}, {3, 4}, {5, 6}}, {"a", "b"}]TransformColumns[tab, "a" -> Nothing]DeleteColumnsも同様に使える:
DeleteColumns[tab, "a"]列が年と月のTabularオブジェクトを取る:
data = {{2024, 10}, {2024, 11}, {2024, 12}};tab = Tabular[data, {"year", "month"}]TransformColumnsは各行の日付を構築することで新規列を加えることができる:
TransformColumns[tab, "date" -> DateObject @* Values]TransformColumns[tab, "date" -> (DateObject[{#year, #month}, "Month"]&)]まず日付の列を構築して次にInsertColumnsを使ってこれを加えることもできる:
InsertColumns[tab, "date" -> Map[DateObject, data]]関連するガイド
-
▪
- 表形式の変換 ▪
- 表形式データのクリーニング ▪
- 表形式処理の概要 ▪
- 表形式オブジェクト
テキスト
Wolfram Research (2025), TransformColumns, Wolfram言語関数, https://reference.wolfram.com/language/ref/TransformColumns.html (2026年に更新).
CMS
Wolfram Language. 2025. "TransformColumns." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2026. https://reference.wolfram.com/language/ref/TransformColumns.html.
APA
Wolfram Language. (2025). TransformColumns. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TransformColumns.html
BibTeX
@misc{reference.wolfram_2026_transformcolumns, author="Wolfram Research", title="{TransformColumns}", year="2026", howpublished="\url{https://reference.wolfram.com/language/ref/TransformColumns.html}", note=[Accessed: 08-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_transformcolumns, organization={Wolfram Research}, title={TransformColumns}, year={2026}, url={https://reference.wolfram.com/language/ref/TransformColumns.html}, note=[Accessed: 08-November-2026]}