導入多個相同格式的csv文件我有幾個類似格式的 csv 文件。 所有 csv 文件在行號上都有標題。 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 文件這是對您的代碼的修改,它查找給定目錄中的所有文件,打開每個文件,刪除最後四行,然後將其添加到串聯文件中。
該代碼未經過全面測試,因為我沒有與您的輸入匹配的文件。但它應該很接近,你應該能夠解決它的任何小問題。
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 );
);
這將比多文件導入運行得慢,但它會完成工作
Re: 導入多個相同格式的csv文件謝謝吉姆。
您的解決方案為我節省了很多時間。