在kdb中如何拆分键值对数据生成新列实现数据标准化
kdb表结构化拆分解决方案
完全可以实现,通过字符串切割 + 行展开的组合操作即可完成需求,以下是可直接运行的代码及说明:
1. 样例原始表构造
// 对应你给出的原始表结构 t:([id:1 2]data:("A=1000 B=2000";"A=200 C=300"))
2. 核心处理代码
// 拆分data字段并展开为多行 res:ungroup select id, kv:{"=" vs x} each' (" " vs' data) from t; // 重命名列符合目标要求 res:`id`data.1`data.2 xcol res; // 将数值列从字符串转为整型,可根据实际需求换为浮点型"F"等 res:update data.2:"J"$data.2 from res;
3. 结果验证
执行以上代码后res即为你需要的目标表:
id | data.1 data.2 ---| ------------ 1 | A 1000 1 | B 2000 2 | A 200 2 | C 300
内容的提问来源于stack exchange,提问作者delita
相关产品推荐
相关产品推荐

