【环球新视野】Table.ReplaceValue 替换重复ID案例
本期案例是将重复出现的ID进行替换,对应的值为ALT_ID的值,前后转换效果如下:
(资料图片仅供参考)
解题套路
(一)Table.ReplaceValue
1.首先获取当前行对应的位置,通过位置获得包括当前行之前的数据。
深化ID列,筛选与当前行ID相同的项并统计,判断的依据是统计的个数是否为1,个数为1的不变,其他进行替换。
Table.ReplaceValue(源,each [ALT_ID],each List.Count(List.Select(Table.FirstN(源,Table.PositionOf(源,_)+1)[ID],(x)=>x=[ID]))=1,(x,y,z)=>if z then x else y,{"ID"})
2.本案例是对ID的唯一性进行判断,因此这里不需要进行上述相同ID的筛选,只要截取不包括当前行的数据,判断的依据就变成了深化后ID列是否包含当前行ID,包含则进行替换,否则不变。
Table.ReplaceValue(源,each [ALT_ID],each List.Contains(Table.FirstN(源,Table.PositionOf(源,_))[ID],[ID]),(x,y,z)=>if z then y else x,{"ID"})
3.另外一种方式也可以扩展下。对源添加索引列,然后依据ID进行分组,对于索引值非最小的ID进行替换,其他保持不变。
Table.RemoveColumns(Table.Sort(Table.Combine(Table.Group(Table.AddIndexColumn(源,"index"),"ID",{"a",each Table.ReplaceValue(_,each [ALT_ID],each [index],(x,y,z)=>if z=List.Min([index]) then x else y,{"ID"})})[a]),"index"),"index")
使用索引可以保持源数据的排序,如果不考虑这个,也可以直接使用位置函数进行转换。
(二)List.Accumulate
该思路与前述唯一性判断类似,ACC第二参数为列表,对应的第二项为ID库,当出现不唯一的时候,对传递的列表进行ID值替换,否则不变。
Table.FromRows(List.Accumulate(Table.ToRows(源),{{},{}},(x,y)=>if List.Contains(x{1},y{0}) then {x{0}&{List.ReplaceRange(y,0,1,{List.Last(y)})},x{1}} else {x{0}&{y},x{1}&{y{0}}}){0},Table.ColumnNames(源))
以上是本期内容。
关键词:
推荐阅读
pvc是什么 生产pvc的上市公司都有哪些?
pvc是什么pvc中文名是聚氯乙烯,曾是世界上产量最大的通用塑料,在建筑材料、日用品、管材等领域应用,市场十分广泛。那么,A股市场中生产p 【详细】
搜狗正式并入腾讯 搜狗公司简介
搜狗正式并入腾讯前段时间,一直有消息传出,腾讯即将收购搜狗,近日,搜狗正式并入腾讯的消息冲上了热搜榜单,吸引了众多网友关注,具体是 【详细】
中国古代十大名刀是什么 中国古代十大名刀简介
中国几乎所有的朝代都有记载名刀诞生的记录。从初唐大一统战争到盛唐的一切内外战争都出现过冷兵器——唐刀,史上对后世影响很大。中国古代 【详细】
动力天文台最新拍摄到一个超级日冕洞 日冕出现在哪里?
动力天文台最新拍摄到一个超级日冕洞据国外媒体报道,天文学家观测到的日冕洞犹如太阳表面蔓延一个巨大的深坑,10月15日,美国宇航局太阳动 【详细】
鲁班发明了什么东西 什么是鲁班发明的?
鲁班发明了什么东西?在鲁班之前,木匠只用斧子和刀子来平整他们建筑用的木材,即使干的很好,也难让人满意。后来通过长期实践,鲁班发现使 【详细】
相关新闻
- 【时快讯】私域数据等于企业资产!但做不到这4点,等于白做!
- 何帆看热点为什么要加强对互联网平台公司监管?-天天要闻
- 【环球新视野】Table.ReplaceValue 替换重复ID案例
- 吴尚垠(挽狂澜于既倒,扶大厦之将倾!还记得刘国正杀了个七进七出的那场比赛吗?)-世界简讯
- 北京菜市场(北京有哪些物美价廉的农贸市场?)
- 当前观点:云南将开展新能源生产安全专项整治
- 提升应对工业信息安全风险能力
- 环球最新:CIMT2023:开启后疫情时代的机床盛宴
- 全球热文:中兴WATCH Live发布 采用1.3英寸高清大屏 21天持久续航
- 喜马拉雅 X Redmi小爱音箱Play联名款音箱亮相 尽享优质音频
- Power Max P18K Pop 只是电池容量大而已
- 全球今头条!已有 16 年历史,听歌神器 Foobar2000 上架 Win10 商店
- 世界快看:乐歌公司智能升降桌被曝光藏有摄像头,已行政约谈该
- 两个关于AI的思想实验:对熟视无睹的日常事物提出疑问的能力-时讯
- 【世界时快讯】数字人的崛起与人工智能的发展
- 为啥我们不愿意信自己?面对纷杂的互联网信息怎么办?
- 减持完京东后,腾讯又清仓美团,马化腾的一系列操作令人疑惑 全球播资讯
- 电商直播APP开发解决方案
- 房产证抵押贷款流程是怎么样的 环球热头条
- 沈鼓更名为沈鼓集团股份有限公司,全面打造世界一流品牌! 环球关注