KDB:将数据保存到CSV时是否保留前导零?

时间:2018-08-13 15:31:57

标签: excel csv formatting kdb

我正在尝试将数据从KDB导出到csv文件。不幸的是,当我这样做时,前导零消失了。例如,0355变为355。

是否存在可以用来解决此问题的各种技巧?

2 个答案:

答案 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设置为文本格式将使它们正确显示。