如何在不重复值的情况下同时展开一行列表中的所有列表?
How can I expand all lists in a row of lists at the same time without repeating values?
针对关于如何同时展开一行列表中的所有列表的问题,@Carl Walsh 提供了这段简洁有用的代码:
let
Source = #table({"A", "B"}, {{ {1,2}, {3,4}} }),
Expanded = List.Accumulate(
Table.ColumnNames(Source),
Source,
(state, column) => Table.ExpandListColumn(state, column))
in
Expanded
产生这个:
我想得到这个结果:
我不希望在处理每个后续列时在先前处理的列中重复值。
是否可以通过对 Carl 的代码进行简单的修改来实现目标?
也许不是很简单,但很有效:下面的代码将列与调整后的代码结合在一起,因此列表被压缩并且内部列表被转换为记录。接下来展开列表列,生成一个包含随后展开的嵌套记录的列。
不幸的是,您不能将列与嵌套列表结合使用,因此我首先创建了一些虚拟文本列,然后将它们组合起来以生成基本代码,随后我对其进行了调整,并删除了使用虚拟列的步骤.
let
Source = #table({"A", "B"}, {{ {1,2}, {3,4}} }),
#"Merged Columns" = Table.CombineColumns(Source,{"A", "B"}, each List.Transform(List.Zip(_), each Record.FromList(_,{"A","B"})),"Merged"),
#"Expanded Merged" = Table.ExpandListColumn(#"Merged Columns", "Merged"),
#"Expanded Merged1" = Table.ExpandRecordColumn(#"Expanded Merged", "Merged", {"A", "B"}, {"A", "B"})
in
#"Expanded Merged1"
针对
let
Source = #table({"A", "B"}, {{ {1,2}, {3,4}} }),
Expanded = List.Accumulate(
Table.ColumnNames(Source),
Source,
(state, column) => Table.ExpandListColumn(state, column))
in
Expanded
产生这个:
我想得到这个结果:
我不希望在处理每个后续列时在先前处理的列中重复值。
是否可以通过对 Carl 的代码进行简单的修改来实现目标?
也许不是很简单,但很有效:下面的代码将列与调整后的代码结合在一起,因此列表被压缩并且内部列表被转换为记录。接下来展开列表列,生成一个包含随后展开的嵌套记录的列。
不幸的是,您不能将列与嵌套列表结合使用,因此我首先创建了一些虚拟文本列,然后将它们组合起来以生成基本代码,随后我对其进行了调整,并删除了使用虚拟列的步骤.
let
Source = #table({"A", "B"}, {{ {1,2}, {3,4}} }),
#"Merged Columns" = Table.CombineColumns(Source,{"A", "B"}, each List.Transform(List.Zip(_), each Record.FromList(_,{"A","B"})),"Merged"),
#"Expanded Merged" = Table.ExpandListColumn(#"Merged Columns", "Merged"),
#"Expanded Merged1" = Table.ExpandRecordColumn(#"Expanded Merged", "Merged", {"A", "B"}, {"A", "B"})
in
#"Expanded Merged1"