JMP Pythonで.jmpファイルを書き込む方法こんにちは、私はJMP19.1.1を使用しています。
JMPやJSLを使ってファイルを開き、プロット用のJSLスクリプトを追加して実行する方法の例を見ました。
JMP Pythonを使ってCSVファイルを開き、グラフを含む.jmpファイルを書き出す例はありますか?皆さんはどのようにされていますか?
エイドリアン
自動化とスクリプト作成基本的なデータ分析とモデリングデータアクセスRe: JMP Pythonで.jmpファイルを書き込む方法保存はDataTableの保存メソッドで行うことができます。

テーブルスクリプトを追加するには、 真のjslまたは jmp 。表現を使用したスクリプトのいずれかを使用できます。

Re: JMP Pythonで.jmpファイルを書き込む方法こんにちは、
ご回答ありがとうございます。jmpライブラリを使用しない場合についてお話ししています。データを処理し、CSVファイルを出力するPythonコードを使用することについてお話ししています。.jmpファイルへの書き込みに切り替えたいのですが、そのような方法はありますか?例えば、Pandasデータフレームを直接.jmpファイルに変換する方法などです。
ありがとう
Re: JMP Pythonで.jmpファイルを書き込む方法私の知る限りでは、いいえ。PythonはJMP内で実行する必要があります。
Re: JMP Pythonで.jmpファイルを書き込む方法私が実行しようとしているのは以下のとおりです。
from pathlib import Path
import jmp
csv_path = Path(r"C:\Work\debug\jmp_debug\CT_Pro_PRO0CV2_pass_fail_05302026.csv")
out_path = Path(r"C:\Work\debug\jmp_debug\CT_Pro_PRO0CV2_pass_fail_05302026.jmp")
print("開く:", csv_path)
dt = jmp.open(str(csv_path))
print("保存中:", out_path)
dt.save(str(out_path))
print("完了")
PowerShellで、次のように実行しています: `& "C:\Program Files\JMP\JMP\19\jmp.exe" -R "C:\Work\debug\jmp_debug\jmp_csv_to_jmp_simple.py"`。問題は、これによって3つのウィンドウがポップアップ表示されることです。JMPをヘッドレスモードで実行する方法はありますか?つまり、ウィンドウが多数ポップアップ表示されないように実行する方法です。
Re: JMP Pythonで.jmpファイルを書き込む方法.jmpに直接アクセスする主な理由は、これらのファイルがcsv形式で4~10GBもあるためです。そのため、これは非常に面倒です。理想的には、pandasデータフレームをjmpテーブルに渡して書き込むことができます。
Re: JMP Pythonで.jmpファイルを書き込む方法これは本当に困ったものです。どうやら、これをヘッドレスモードで実行する方法はなさそうです。これは本当に驚きです。私の理解が間違っていて、適切なドキュメントを見落としているのかもしれません。もし誰か、jmpをヘッドレスモードで実行する方法をご存知でしたら、ぜひ教えてください。つまり、スクリプト内で実行して、3つか4つの新しいウィンドウが次々と開くのを防ぎたいのです。
Re: JMP Pythonで.jmpファイルを書き込む方法JMP 19.1.3 と、通常の Python 3.13.3 (JMP 以外) では、以下の改善が見られました。これにより、作成中の .jmp テーブルのみが表示されます。つまり、これは解決策に近いものです。それでも、ヘッドレス情報があるかどうかを知りたいです。
from pathlib import Path
インポート時間
import win32com.client
def jsl_quote(path_or_text) -> str:
text = str(path_or_text)
text = text.replace("\\", "\\\\").replace('"', '\\"')
return f'"{text}"'
csv_path = Path(r"C:\Work\debug\jmp_debug\05302026.csv")
out_path = Path(r"C:\Work\debug\jmp_debug\05302026.jmp")
jmp = win32com.client.Dispatch("JMP.Application")
# まずはFalseを試してください。それでもうまくいかない場合は、デバッグ中はTrueに設定してください。
jmp.Visible = False
jsl = f"""
名前はデフォルトでここに設定されます(1);
dt = Open({jsl_quote(csv_path)},Invisible);
dt << Save As( {jsl_quote(out_path)} );
Close( dt, 保存なし );
"""
print("JSLを実行中...")
jmp.RunCommand(jsl)
# 保存が完了する前に RunCommand が戻ってきた場合は、JMP に少し時間を与えます。
time.sleep(2)
print("保存しましたか?", out_path.exists(), out_path)
Re: JMP Pythonで.jmpファイルを書き込む方法大きなファイルのCSV処理は面倒です。私の提案は、ファイルをparquet形式で書き出し、JMPにpyarrowをインポートしてparquetファイルを読み込むことです。ほぼ時間をかけずにpandasデータフレームに変換できます。JMPはデータテーブルの構築時にpandasの列を直接読み込むことができ、jmp.from_dataframe(df)機能があります。pandas 3.0以降を使用している場合、いくつかの非推奨警告が表示されていますが、これらはpyarrow PyCapsuleインターフェースを直接使用することでJMPの開発バージョンで対処されています。CSVには、正確な形式ではないという問題もあります。小数点を確認してください。文字列からdoubleへの変換は、数値からCSV、そしてまた数値に戻るため、特にわずかな違いが生じる可能性があります。
Re: JMP Pythonで.jmpファイルを書き込む方法JMPは、CSV以外の形式を使用したい場合、SQLiteファイルをネイティブに読み書きできます。
現在、書き込み/エクスポート時には、jmpデータテーブルごとに1つのsqliteファイルが作成されます。sqliteファイルには、1つのファイルに複数のテーブルを含めることができます。
Re: JMP Pythonで.jmpファイルを書き込む方法sqlite3では、最大列数が64Kに設定されています。この制限内であればおそらく問題ないでしょうが、生成されるデータベースのサイズも確認することをお勧めします。ファイルが主にテキスト形式の場合、それほど小さくならない可能性があります。数値データはCSVファイルよりもはるかに少ない容量で済みます。