如何從許多 JMP 表中快速重組並產生不同的表?現在,同一目錄 C:\8 中有 2400 個此類 JMP 檔案:JMP 表,其檔案名稱包含詳細的時間戳,每個表有 5000 行資料。
S5 E5 S4 E4 S3 E3 S2 E2 S1 E1 B1 T1 B2 T2 B3 T3 B4 T4 B5 T5 enco
6024 2 6023 10 6021 6 6020 96 6019 18 6018 400 6017 16 6016 78 6015 41 6014 8 603198
1263 88 1262 290 1261 254 1260 347 1259 301 1258 544 1257 364 1256 630 1255 1123 1254 362 600377
現在需要重新整理表來根據「enco」列的代碼編號保存文件,當然同樣的「enco」這樣要在原始文件名中添加時間戳記資料來區分。
指示:
“enco”不會在同一文件的每一行重複。而且 enco 在 2400 個文件中並不完全相同
關鍵是找到一種快速完成此操作的方法。
當然,如果原始檔案是CSV格式或某種更方便這種分割和排序的資料庫格式,您可以提供更好的建議。
自動化和腳本編寫視窗回覆:如何從許多 JMP 表中快速重組並產生不同的表?相比之下,或直接使用CSV庫和字典,容器是最快的。
回覆:如何從許多 JMP 表中快速重組並產生不同的表?是的,我也知道GPT-4o對JMP軟體的JSL不熟悉。
所以後來我讓它直接處理CSV。
然後添加JSL語法使其再次修改。
import os<BR />import duckdb<BR />import pandas as pd<BR />from pathlib import Path<BR />output_dir = Path(r"C:\3")<BR />output_dir.mkdir(exist_ok=True)<BR />con = duckdb.connect(":memory:")<BR />def process_csv_files():<BR />csv_files = list(Path(r"C:\8").glob("*.CSV"))<BR />first_file = csv_files[0]<BR />timestamp = first_file.stem <BR />con.execute("""<BR />CREATE TABLE all_data AS <BR />SELECT *, ? as file_timestamp <BR />FROM read_csv_auto(?)<BR />""", [timestamp, str(first_file)])<BR />for csv_file in csv_files[1:]:<BR />timestamp = csv_file.stem <BR />con.execute("""<BR />INSERT INTO all_data <BR />SELECT *, ? as file_timestamp <BR />FROM read_csv_auto(?)<BR />""", [timestamp, str(csv_file)])<BR />enco_values = con.execute("SELECT DISTINCT enco FROM all_data").fetchall()<BR />for (enco,) in enco_values:<BR />query = """<BR />SELECT * <BR />FROM all_data <BR />WHERE enco = ?<BR />ORDER BY file_timestamp<BR />"""<BR />df = con.execute(query, [enco]).df()<BR />output_file = output_dir / f"{enco}.csv"<BR />df.to_csv(output_file, index=False)<BR />if __name__ == "__main__":<BR />try:<BR />process_csv_files()<BR />except Exception as e:<BR />print(f"E: {str(e)}")回覆:如何從許多 JMP 表中快速重組並產生不同的表?我可以為 JMP(和 JSL)提供建議,但為此我確實需要更多範例並正確理解您想要實現的目標。您是否想為每個 enco 提供一個唯一的文件?所有表格都包含完全相同的欄位嗎?它們總是包含相似的數據(整數)嗎?他們總是只有兩行嗎?檔案名稱是否始終採用相同的格式?表的標題是否正確設置,或者第一行字元資料是否帶有標題?
我認為(純)Python 問題(大部分)屬於其他論壇。如果您有 .csv 檔案形式的數據,那麼使用 DuckDB 應該是簡單的任務。此外,在使用 Python 時,學習閱讀您正在使用的每個程式庫的文檔絕對是值得的,而不僅僅是依賴 LLM( 讀取多個檔案 – DuckDB )。
回覆:如何從許多 JMP 表中快速重組並產生不同的表?相比之下
處理 CSV 的速度要快得多。

回覆:如何從許多 JMP 表中快速重組並產生不同的表?感謝專家!
是的,我也想嘗試新的方法。請教高手Python和DuckDB具體如何實現?非常感謝!
回覆:如何從許多 JMP 表中快速重組並產生不同的表?如果它可以處理這個問題,我會先嘗試使用多個檔案匯入(使用來源(檔案名稱)建立單一表格並從那裡開始)。然後我可能會嘗試一些 JSL 解決方案,然後可能嘗試一些其他 JSL 解決方案,最後是 Python 與 DuckDB 整合。
回覆:如何從許多 JMP 表中快速重組並產生不同的表?我嘗試將它們全部合併到一個 JMP 表中,然後提取子集。速度很慢。
是否在記憶體中建立不同的記憶體數組來串聯起來速度更快,但這會讓程式碼變得更加複雜。
感謝專家!