gpt4 book ai didi

kdb/q 如何从列表中删除条目

转载 作者:行者123 更新时间:2023-12-04 22:09:48 24 4
gpt4 key购买 nike

我正在尝试将几个 csv 与相同的列连接起来。

getDataFromCsv :{[fn];
if[not () ~key hsym fn; data: ("zSzzSISSIIIIIffffff"; enlist "\t") 0:fn;
... do stuff...
:data];}

getFiles:{[dates;strat];root:"/home/me/data_";:{x: `$x, ssr[string y; "."; ""], ".csv"}[root] each dates;}


getData:{[dates;strat];`tasks set ([]c:());files:getFiles[dates;strat];:getDataFromCsv each files;}

这样做我得到一个表列表,其中一些条目为空,其中没有文件
[0] = ([] c1;c2;c2 ...
[1] = ([] c1;c2;c2 ...
[2] = ([] c1;c2;c2 ...
[3] = ([] c1;c2;c2 ...
[4] = ([] c1;c2;c2 ...
[5] = ::
[6] = ([] c1;c2;c2 ...

有了这些条目,我无法将列表夷为平地以获取包含所有条目的表格。我怎样才能删除那些空条目?

最佳答案

假设列表中不包含其他数据类型,您可以从列表中删除类型不是 98h 的快速修复:

q)r
::
+`a`b`c!(41 48 29;2 8 6;5 8 5)
+`a`b`c!(41 48 29;2 8 6;5 8 5)
+`a`b`c!(41 48 29;2 8 6;5 8 5)
q)raze @[r;where 98h=type each r]
a b c
------
41 2 5
48 8 8
29 6 5
41 2 5
48 8 8
29 6 5
41 2 5
48 8 8
29 6 5

这还假设每个输出的所有列都相同。如果不是,您可以使用 uj 来合并列:
q)t:r,enlist ([] d:1 2 3; e:3 4 5)
q)(uj/)@[t;where 98h=type each t]
a b c d e
----------
41 2 5
48 8 8
29 6 5
41 2 5
48 8 8
29 6 5
41 2 5
48 8 8
29 6 5
1 3
2 4
3 5

关于kdb/q 如何从列表中删除条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48880398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com