导入两行作为标题的 csv你好,
我正在处理相对较大的 csv 文件 (±150MB),这些文件以需要合并为列标题的两行开始。
我编写了一个脚本,循环遍历每一列并将列名称设置为当前名称+第一行的值。
问题是运行速度非常慢,有时我需要等待±10分钟才能更改4000列的名称。
它在某种程度上取决于文件大小,在小文件中更改相同数量的列需要几秒钟。
我尝试了一些解决方法 -
1. 仅对第一行进行子集化并更改所有列名称(非常快)。 然后我想我会连接原始表,但我不能这样做,因为现在的列名不一样。
2. 按照建议更新 CSV 导入设置这里。但我仍然没有看到包含两行作为标题的选项。
3. 将文件导出为 xls,然后导入,并以两行作为标题。导出时间比原始列名更改的时间长。
我是否缺少另一种解决方法,也许有一个选项可以根据列表更改所有列名称?
预先感谢帮助者。
大规模定制回复:导入两行作为标题的 csv您可以尝试导入多个文件,即使只导入一个文件。 可能会更快,并且支持多个行标题。
File->Import Multiple FilesFile->Import Multiple Files文件->导入多个文件
回复:导入两行作为标题的 csv你好@兰斯,
如果使用 JMP 打开文件并取消选择“使用默认程序打开”框。 取消选中以文本形式打开。”,然后选择单选按钮“数据(使用预览)”;确保选择 JMP 打开窗口中的所有文件 (*.*)。

然后,您可以选择一些重要的分隔符和其他内容,包括数据从哪一行开始,因此如果有两行作为标题,您可以跳过一行,然后将数据开始设置为第 3 行或其他行。

然后,您可以打开数据表中的“源”脚本,根据需要编辑导入设置,并在 JSL 程序中使用该脚本。

或者,如果您可以将其重新保存为 XLSX 文件,则可以使用 Open() 命令并定义要打开的选项卡、要开始/停止的列以及要开始/停止的行以及具有多行作为标题。 这应该可以解决您必须重新命名列的问题。

我要提到的最后一个选项是,如果您知道列名称并且它们不会更改,那么在您的脚本中,您可以有一个列表 ColNames ={"...", "...",.. .} 将所有正确的名称放在引号中,并在列表中用逗号分隔。 然后,加载 CSV 文件后,您可以运行 For 循环以根据 ColNames 中的条目重命名每列。 例如:
dt=Current data table();//or whatever your data table name is.
icols=.;//variable to count through the columns
For(icols=1, icols<=N Columns(dt), icols++,
Column(dt, icols) <<SET name=""></SET>
希望其中之一有帮助!
祝你好运,
DS