如何快速重新组合并生成来自多个 JMP 表的不同表?现在同一目录 C:\8 下有 2400 个这样的 JMP 文件:JMP 表,文件名带有详细的时间戳,每个表包含 5000 行数据。例如,C:\8\20241031112503.JMP。
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 个文件中并不完全相同
关键是要找到一种快速完成此操作的方法。JSL 或 python 方法都可以与 JMP 软件一起使用(表示 JMP 环境中的 python)。
当然如果原始文件是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 表中,然后提取子集。速度很慢。
是否在内存中创建不同的内存数组来连接起来虽然速度更快,但是这会使代码变得更加复杂。
谢谢专家!