我正在尝试将数据从KDB导出到csv文件。不幸的是,当我这样做时,前导零消失了。例如,0355变为355。
是否存在可以用来解决此问题的各种技巧?
答案 0 :(得分:4)
我认为您的问题可能是在使用excel打开CSV的过程中。除非在excel中查看,否则通行的0仍然存在。
如果要在excel中查看数据,一种选择是先对数据进行字符串处理,然后在kdb中添加一个流行的'。例如:
q)table: flip `a`b`c!(`001`002`003; 123; 10 12 12)
q)update a:("'",'string a) from table
a b c
-------------
"'001" 123 10
"'002" 123 12
"'003" 123 12
这有效地用作指示“这是文本”的指示符,因此将保留0。除非您编辑特定的单元格,否则在单元格中将不显示“,”因此对于显示这些符号很有用。除此之外,我认为您最好的选择是只更改excel中的列类型设置。
答案 1 :(得分:2)
如果您的.csv文件在记事本中打开时包含前导0,则问题很可能是Excel将值误解为数字,因为当kdb +将符号导出到csv文件时,它会执行此操作而不将值括在引号中。
要解决此打开的Excel,请单击“数据”功能区,然后单击“从文本”,以使用导入向导导入csv。选择csv后,向导将打开,您可以将分隔符设置为逗号。
然后,您将能够为每一列选择数据类型,并将列的前导0设置为文本格式将使它们正确显示。