firefly0818

2020-06-08   阅读量: 1241

Power BI

power bi 中的powerquery1

扫码加入数据分析学习群

以下是pow bi 中powerquery 的身份证信息处理案例,

高级编辑器的代码如下:

let

源 = Excel.Workbook(File.Contents("C:\Users\Administrator\Desktop\shuju\课件\正课课间\Power BI数据加工及数据汇总分析 5-7\Power Query数据处理\身份证号码练习数据.xlsx"), null, true),

身份证号码_Sheet = 源{[Item="身份证号码",Kind="Sheet"]}[Data],

提升的标题 = Table.PromoteHeaders(身份证号码_Sheet, [PromoteAllScalars=true]),

更改的类型 = Table.TransformColumnTypes(提升的标题,{{"身份证号码", type text}}),

已添加索引 = Table.AddIndexColumn(更改的类型, "序号", 1, 1),

重排序的列 = Table.ReorderColumns(已添加索引,{"序号","身份证号码"}),

已插入文本范围 = Table.AddColumn(重排序的列, "性别", each Text.Middle([身份证号码], 16, 1), type text),

更改的类型1 = Table.TransformColumnTypes(已插入文本范围,{{"性别", Int64.Type},{"序号",type text}}),

校验的为偶数 = Table.TransformColumns(更改的类型1,{{"性别", Number.IsEven, type logical}}),

更改的类型2 = Table.TransformColumnTypes(校验的为偶数,{{"性别", type text}}),

替换的值 = Table.ReplaceValue(更改的类型2,"true","女性",Replacer.ReplaceText,{"性别"}),

替换的值1 = Table.ReplaceValue(替换的值,"false","男性",Replacer.ReplaceText,{"性别"}),

已插入文本范围1 = Table.AddColumn(替换的值1, "生日日期", each Text.Middle([身份证号码], 6, 8), type text),

更改的类型3 = Table.TransformColumnTypes(已插入文本范围1,{{"生日日期", type date}}),

已插入文本范围2 = Table.AddColumn(更改的类型3, "文本范围", each Text.Middle([身份证号码], 0, 6), type text),

更改的类型4 = Table.TransformColumnTypes(已插入文本范围2,{{"文本范围", Int64.Type}}),

合并的查询 = Table.NestedJoin(更改的类型4, {"文本范围"}, 对应地名, {"ID"}, "对应地名", JoinKind.LeftOuter),

#"展开的“对应地名”" = Table.ExpandTableColumn(合并的查询, "对应地名", {"名称"}, {"对应地名.名称"}),

删除的列 = Table.RemoveColumns(#"展开的“对应地名”",{"文本范围"})

in

删除的列

呈现结果如下:

以下是身份证信息提取,

身份证第6位后的8位是生日。

15位的身份证号:最后一位奇数表示男,偶数表示女;18位的身份证号:倒数第二位奇数表示男,偶数表示女。

前2位是省份代码,第3和第4位是城市代码,第5和6位是取县代码。

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
33.2600 2 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子