将分类变量转换为数字PowerQuery

格里多

我的表中有许多列,这些列的文本值可分为几类-例如,“ ABC”列具有9000行,但是每一行都必须具有{{A“,” B“,” C“}中的值。其他列(如性别)为“ M” /“ F” /空

对于每列,我想就地将其转换为整数列表-因此A:1,B:2,C:3等。

我一直在尝试使用List.Distinct将值提取到临时表中,向其添加索引列并使用联接基于临时表中的映射来转换初始列。但是,这似乎很慢,我不确定如何在表中的所有列上运行它(或至少Table.ColumnsOfType(Source, {type nullable text})选择分类列...)。

有什么建议?

性别 水果 [...]
F
F
中号 柠檬
中号
中号 柠檬
空值
中号

性别 水果 [...]
1个 1个
1个 2
2 3
2 2
2 3
空值 1个
2 2
骑马

在PowerQuery中,这似乎适用于任意数量的列

将所有null替换为其他内容,这里+ = +

添加索引

取消枢纽

删除重复项

组,向每个组添加索引

在此处输入图片说明

合并回原始文件并扩展

斥责

删除多余的列

之前和之后:

在此处输入图片说明

完整代码:

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Replaced Value" = Table.ReplaceValue(Source,null,"+=+",Replacer.ReplaceValue,Table.ColumnNames(Source)),
#"Added Index" = Table.AddIndexColumn(#"Replaced Value", "Index", 0, 1),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Added Index", {"Index"}, "Attribute", "Value"),

// derive a table of replacements
#"Removed Duplicates" = Table.Distinct(#"Unpivoted Other Columns", {"Attribute", "Value"}),
#"Grouped Rows" = Table.Group(#"Removed Duplicates", {"Attribute"}, {{"GRP", each Table.AddIndexColumn(_, "Index2", 1, 1), type table}}),
#"Expanded GRP" = Table.ExpandTableColumn(#"Grouped Rows", "GRP", {"Value", "Index2"}, {"Value", "Index2"}),

//replace originals
#"Merged Queries" = Table.NestedJoin(#"Unpivoted Other Columns",{"Attribute", "Value"},#"Expanded GRP",{"Attribute", "Value"},"EG",JoinKind.LeftOuter),
#"Expanded Table1" = Table.ExpandTableColumn(#"Merged Queries", "EG", {"Index2"}, {"Index2"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Table1",{"Value"}),
#"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[Attribute]), "Attribute", "Index2", List.Sum),
#"Removed Columns1" = Table.RemoveColumns(#"Pivoted Column",{"Index"})
in #"Removed Columns1"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将分类变量转换为数字PowerQuery

来自分类Dev

将分类变量转换为数字PowerQuery

来自分类Dev

将分类变量转换为数字PowerQuery

来自分类Dev

如何将连续变量转换为分类变量?

来自分类Dev

将文本变量转换为数字时间

来自分类Dev

将列中的字符串转换为分类变量

来自分类Dev

将分类列转换为单个虚拟变量列

来自分类Dev

将数值变量转换为分类和分组

来自分类Dev

如何将分类变量转换为其频率。

来自分类Dev

将多个分类变量转换为 R 中的因子

来自分类Dev

R-将各种虚拟变量/逻辑变量从其名称转换为单个分类变量/因子

来自分类Dev

Python-加快将分类变量转换为数字索引的速度

来自分类Dev

有没有办法用 Pandas 的字典将分类变量转换为虚拟变量?

来自分类Dev

读取CSV文件时将数字变量转换为因子

来自分类Dev

使用变量将数字转换为科学计数法python

来自分类Dev

Selenium(PYTHON)添加将数字转换为语法的变量

来自分类Dev

将数字变量转换为毫秒时间格式

来自分类Dev

将分类数据转换为数字数据scikit-learn优化

来自分类Dev

如何将非数字变量列转换为两个数字变量列?

来自分类Dev

将多个分类值转换为数值

来自分类Dev

将分类数据转换为数值向量

来自分类Dev

将字母转换为数字

来自分类Dev

将数字转换为颜色

来自分类Dev

将数字转换为日期

来自分类Dev

将数字转换为逗号

来自分类Dev

将数字转换为字母

来自分类Dev

将BN转换为数字

来自分类Dev

将数字转换为日期

来自分类Dev

将数字转换为字符