匯入多個具有相同格式的 csv 文件我有幾個格式相似的 csv 檔案。 所有 csv 檔案的標題位於第 1 行。 279 & 資料從第 281 行開始。 儘管資料長度可能有所不同,但所有 csv 檔案的最後 4 行都有不相關的信息,需要刪除。
目前,我正在使用“多文件導入”功能來導入數據,但我不知道如何排除最後 4 行。 匯入 JMP 表後,我刪除了這些行。 是否可以建立一個腳本來自動匯入目錄中的所有 csv 檔案並透過排除最後 4 行來連接它們。 下面的腳本是我匯入單一 csv 檔案時得到的腳本。
Open("C:\Users\TEST\ABC.csv",
columns(
New Column( "Record", Character, "Nominal" ),
New Column( "14", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "ID", Character, "Nominal" ),
New Column( "XREL", Character, "Nominal" ),
New Column( "YREL", Character, "Nominal" ),
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Space, Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 279 ),
Data Starts( 281 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
)實際上所有列都包含連續格式的數值。 但是,上述不相關資訊使其被偵測為「名義上」。
資料存取資料混合與清理大規模客製化回覆:匯入多個具有相同格式的 csv 文件謝謝吉姆。
您的解決方案節省了我很多時間。
回覆:匯入多個具有相同格式的 csv 文件以下是對程式碼的修改,它會尋找給定目錄中的所有文件,打開每個文件,刪除最後四行,然後將其添加到串聯文件中。
該程式碼尚未經過完全測試,因為我沒有與您的輸入相符的檔案。但它應該很接近,並且您應該能夠解決它存在的任何小問題。
Names Default To Here( 1 );
dirFiles = Files In Directory( "C:\Users\TEST" );
// Create the output data table to concatenate all files to
dtFinal = New Table( "Final", New Column( "Source", character ) );
For( i = 1, i <= N Items( dirFiles ), i++,
dt = Open(
"C:\Users\TEST\" || dirFiles[i],
columns(
New Column( "Record", Character, "Nominal" ),
New Column( "14", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "ID", Character, "Nominal" ),
New Column( "XREL", Character, "Nominal" ),
New Column( "YREL", Character, "Nominal" ),
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Space, Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 279 ),
Data Starts( 281 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
// Delete the last 4 rows
dt << delete rows( Index( N Rows( dt ) - 4, N Rows( dt ) ) );
// Add a source column
dt << New Column( "Source", character, set each value( dirFiles[i] ) );
// Concatenate the file
dtFinal << concatenate( dt, Append to first table( 1 ) );
// delete the current input table
Close( dt, nosave );
);
這會比多文件導入運行得慢,但它會完成工作