導入具有兩行作為標題的csv你好
我正在使用相對較大的csv文件(±150MB),文件從需要合併為列標題的兩行開始。
我編寫了一個腳本,該腳本遍歷每一列,並將列名設置為當前名稱+第一行的值。
它運行非常緩慢的問題,有時我需要等待±10分鐘才能更改4000列的名稱。
它在某種程度上取決於文件的大小,在一個小文件中更改相同數量的列需要幾秒鐘。
我嘗試了幾種解決方法-
1.僅子集第一行並更改所有列名(非常快)。 然後,我以為我將串聯原始表,但是我不能這樣做,因為列名現在不一樣了。
2.根據建議更新CSV導入設置這裡。但我仍然看不到包含兩行作為標題的選項。
3.將文件導出為xls,然後以兩行作為標題導入。導出時間長於原始列名更改。
我還缺少另一種解決方法,也許有一個選項可以基於列表更改所有列名?
在此先感謝您的幫助。
數據表腳本編寫回复:導入帶有兩行作為標題的CSV你好@蘭斯,
如果使用JMP打開文件,然後取消選中“使用默認程序打開”框。 取消選中以文本形式打開。”,然後選擇單選按鈕“數據(使用預覽)”;確保在“ JMP打開”窗口中選擇所有文件(*。*)。

然後,您可以選擇一些重要的定界符和其他內容,包括數據開始的行,因此,如果有兩行作為標題,則可以跳過其中的一行,然後將數據開始設置為第3行或其他任何行。

然後,您可以在數據表中打開“源”腳本,並根據需要編輯“導入”設置,然後在JSL程序中使用此腳本。

另外,如果您可以將其重新保存為XLSX文件,則可以使用Open()命令並定義要打開的選項卡,要開始/停止的列以及要開始/停止的行以及多行作為標題。 那應該解決您必須重命名列的問題。

我要提到的最後一個選項是,如果您知道列名是什麼,並且它們沒有更改,那麼在您的腳本中,您可以有一個列表ColNames = {“ ...”,“ ...”,.. 。}中所有正確的名稱用引號引起來,並在列表中用逗號分隔。 然後,在加載CSV文件之後,您可以運行For Loop以根據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
回复:導入帶有兩行作為標題的CSV您可能會嘗試多個文件導入,即使只是一個文件也是如此。 可能會更快,並支持多個行標題。
文件->導入多個文件