加快renamecats /直言多个列

3视图(30天)
李鹏
李鹏 2020年5月12日
评论道: 李鹏 2020年10月9日
我有一个巨大的csv文件约16 gb / 9 k列。每一列最初充满了一些代码(整数或字符串),和我有一个代码书每一列的代码和意义。我想做的是翻译的表,最后有一个表可读的文本,而不是代码。
我可以使用分类或renamecats“翻译”,但问题是,需要substentially长时间循环这些列。我想如果有一种方法来加快解决。
看到下面一个例子
台([=表" a1 ",“b2”,“c3”,“d4”,“e5”)”,
(“123”,“234”,“345”,“456”,“567”)”,
“VariableNames”,{“一个”,“B”});
字典。([=表" a1 ",“b2”,“c3”,“d4”,“e5”)”,
(“苹果”,“香蕉”,“猫”,“狗”,“elephont”)”,
“VariableNames”,{“代码”,“意义”});
字典。([B =表“123”,“234”,“345”,“456”,“567”)”,
(“东”,“西方”,“北”,“南”,“中间”)”,
“VariableNames”,{“代码”,“意义”});
var = tbl.Properties.VariableNames;
iC = 1:宽度(台)
台。(iC) =分类(台。(iC),字典。(var {iC}) .Code,
字典。(var {iC}) .Meaning);
结束
是可以避免这个循环,或任何建议来加快(考虑到我有超过500 k行和9 k列)。
谢谢你!

答案(1)

剪秋罗属植物龙
剪秋罗属植物龙 2020年10月9日
你好,
看来你有 字典 代码的书,和你已经知道这组代码字段/名称的xxx 字典 (即你可以指定” VariableNames “在第一个表(…)调用)。
在这种情况下,为什么不开始创建表和分类:
台=表(分类([" a1 ";“b2”;“c3”;“d4”;“e5”),dictionary.A。代码,dictionary.A.Meaning),
分类([“123”;“234”;“345”;“456”;“567”),dictionary.B。代码,dictionary.B.Meaning),
“VariableNames”,{“一个”,“B”});
没有循环,更快和更可读。
3评论
李鹏
李鹏 2020年10月9日
你好,再次感谢你的关注。我已经尝试过不同的选项——高大的数组,数据存储,将一个数据存储,mapreduce,或readall服务器(超过380 g ram)。这是容易handlable。
问题是这个de-coding部分。它仅仅是一个循环太慢。ImportOptions忍不住和实际数据的解码我猜,我必须先加载数据和解码。
我试着使用变换数据存储方式。基本上在变换函数,我做解码,然后把数据存储到磁盘。它的工作原理,但缓慢。
我有几个可行的解决方案,但没有人给我最好的速度。金宝搏官方网站cvs的单一文件大约20 g格式,与超过一百万行,几乎10 thunsands列。与我的服务器接管这个任务24小时所以我想我只是需要一点耐心让服务器工作,而我在做别的事情。

登录置评。

类别

找到更多的在描述性统计帮助中心文件交换

下载188bet金宝搏


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!