Wie konvertiert man den Python Pandas DataFrame in das JMP-Format, ohne ihn als Datei zu speichern?Ich weiß, dass JMP die Funktion „Python-Schnittstelle“ in der JMP-Skriptumgebung unterstützt. Aber manchmal ist es besser, unabhängig voneinander mit einem Python-Ingenieur und einem JMP-Ingenieur zusammenzuarbeiten.
In unserem Fall liest der Python-Ingenieur Datenbankdateien mit der DB-Schnittstelle, führt eine Vorverarbeitung mit der Pandas-Bibliothek durch und möchte das JMP-Format konvertieren, da der JMP-Ingenieur nur Daten im JMP-Format benötigt, um Datenanalyse und Nachbearbeitung mit JSL durchzuführen.
Wie Sie sich vorstellen können, besteht der Engpass darin, den Python Pandas-DataFrame zu konvertieren, ohne ihn als Datei zu speichern. Der einfachste Weg besteht darin, Dateien zu speichern und im JMP-Format zu lesen. Das Speichern und Lesen nimmt jedoch viele Male in Anspruch. Ich würde gerne wissen, wo es eine Bibliothek gibt, mit der man Python Pandas DataFrame direkt im Speicher in das JMP-Format konvertieren kann oder nicht.
Betreff: Wie konvertiere ich Python Pandas DataFrame in das JMP-Format, ohne es als Dateien zu speichern?Danke für den Beitrag zurück.Ich würde gerne eine .parquet-Datei einfach direkt mit JMP öffnen können.
Wir verwenden bereits DB-Verbindungen zum Abrufen von Daten, aber die Verwendung von .csv in vollständigen Datenpipelines (Extraktion, Schreiben, Speichern, Lesen) weist so viele Ineffizienzen auf, dass wir gerne mit der Verwendung von Parquet beginnen würden.
Betreff: Wie konvertiere ich Python Pandas DataFrame in das JMP-Format, ohne es als Dateien zu speichern?Es gibt zu viele JSON-Formate, um damit umzugehen.
Betreff: Wie konvertiere ich Python Pandas DataFrame in das JMP-Format, ohne es als Dateien zu speichern?@Craige_Hales Du-Da-Mann, Craig 
Betreff: Wie konvertiere ich Python Pandas DataFrame in das JMP-Format, ohne es als Dateien zu speichern?To_Json mit Orient=table könnte eine gute Wahl sein. Es muss von binär in Text und wieder zurück konvertiert werden. Der JSON-Assistent von JMP sollte damit ziemlich direkt umgehen. Die Verwendung von CSV beim Import mehrerer Dateien könnte tatsächlich schnell genug sein. Es nutzt alle Ihre CPU-Prozessoren, um die Spalten parallel zu laden, wenn JMP sie importiert. Abhängig von der Implementierung ist es möglicherweise serverseitig zu langsam.
Ich habe meine eigene Binär-zu-Binär-Übertragung durchgeführt Beowulf, Newton und Mr. Hanson Blogbeitrag, irgendwann zurück. Es verwendete Numpy, um einen Block binärer Daten aus dem Python-Code auszugeben, und die Blob-to-Matrix-Funktion in JSL, um die Binärdaten wieder einzuladen. Das hat gut funktioniert, da die Daten ausschließlich numerisch waren.
Betreff: Wie konvertiere ich Python Pandas DataFrame in das JMP-Format, ohne es als Dateien zu speichern?Ich denke, Sie könnten den JMP-Befehl „Open Database“ oder den Query Builder verwenden, um Daten direkt aus der Datenbank abzurufen. Sie benötigen einen ODBC-Treiber für die Datenbank. Nachdem Sie eine Verbindung zur Datenbank hergestellt haben, können Sie eine SQL-Abfrage senden, um Ihre Daten in JMP abzurufen. Mit dem Query Builder können Sie die SQL grafisch schreiben.
CSV ist eine ziemlich verbreitete Art von Datentransportdatei, daher würde ich nicht so schnell darauf verzichten. Außerdem liest JMP Multithread Text- und CSV-Dateien, sodass sie relativ schnell geöffnet werden.
Betreff: Wie konvertiere ich Python Pandas DataFrame in das JMP-Format, ohne es als Dateien zu speichern?Hallo!Ich weiß, dass dies ein 4 Jahre alter Beitrag ist, und ich bin ein neuer Benutzer in der JMP-Community ... aber für unsere Anwendungsfälle ist die hier vorgestellte Lösung für den ursprünglichen Beitrag nicht umfassend für unsere Bedürfnisse.
Wir möchten einen Server haben, auf dem nur Python läuft (nicht JMP/JSL), der alle Daten abrufen und vorbereiten/transformieren kann, dann in der Lage ist, die Daten zu serialisieren (ohne lokale Dateischreibvorgänge) und die Daten an einen Client zurückzusenden in einer direkt in JMP lesbaren Form.
Unsere Daten sind größer ... vielleicht 100.000 bis 1 Million Zeilen ... und 10 bis 100 Spalten ...Es ist heterogen (numerisch und kategorial) und kann fehlende Werte enthalten.
Unterstützt eine der DataFrame.to_()-Methoden dies?Kann diese Pandas-Methode Zeit sparen und den E/A-Puffer anstelle einer Datei schreiben und dann über das Netzwerk an den JMP-Client übertragen?
Die führenden Kandidatenformate, mit denen wir arbeiten möchten, sind .to_parquet(), to_hdf(), to_feather() .Es sieht so aus, als hätte Pandas eine to_stata()-Methode, die in das „Stata“-Format schreibt.Ich bin mir nicht sicher, ob JSL (SAS) offen genug ist, sodass Pandas es eines Tages implementieren könnte (dort steht es möglicherweise ganz unten auf der Liste).Parkett scheint heutzutage universell zu sein, und Pandas hat auch den Arrow-Typ „Table“ als erstklassigen Typ, was uns ebenfalls fasziniert.
Wir möchten Formate vermeiden, die ein erneutes Parsen von Daten und die Zuweisung von Datentypen (numerisch, kategorisch, Datum_Uhrzeit ...) erfordern. ... also sind .to_csv() und to_json() oder andere Textformate nicht wirklich nützlich.
Vielen Dank im Voraus, dass Sie den Beitrag gelesen haben, und lassen Sie mich wissen, ob ich einen neuen Thread hätte eröffnen sollen, anstatt auf diesen zu antworten.
Randall
Betreff: Wie konvertiere ich Python Pandas DataFrame in das JMP-Format, ohne es als Dateien zu speichern?Eine Methode hierfür wäre die Konvertierung Python Pandas DataFrame zu einer JSL-Version einer JMP-Tabelle.Dies ist eine vollständig unterstützte und dokumentierte Form einer JMP-Datentabelle.Und es ermöglicht Ihnen, alle Spalteneigenschaften, Zeilenzustände usw. einzubeziehen. Um Beispiele dafür zu sehen, was Sie tun müssten, müssen Sie lediglich auf eine vorhandene JMP-Datentabelle verweisen und JMP bitten, das entsprechende Skript zu generieren wird die Tabelle neu erstellen.
Betreff: Wie konvertiere ich Python Pandas DataFrame in das JMP-Format, ohne es als Dateien zu speichern?Kann ich nach Einzelheiten zur Konvertierung des Python Pandas DataFrame in das JMP-Format mit Speicherung als Datei fragen?
Ich möchte Daten als Pandas-DataFrames extrahieren und sie in einem Format speichern, das JMP für weitere Untersuchungen problemlos lesen kann.
Vielen Dank im Voraus
Betreff: Wie konvertiere ich Python Pandas DataFrame in das JMP-Format, ohne es als Dateien zu speichern?In jmp 14 T gibt es einige neue Funktionen zum Abrufen und Senden von Dingen mit Python.
Ich konnte sie noch nicht nutzen.
Es gibt eine Funktion namens Python Get(name), die funktionieren könnte.
Betreff: Wie konvertiere ich Python Pandas DataFrame in das JMP-Format, ohne es als Dateien zu speichern?Danke für deinen Rat.
Aber wenn möglich, würde ich gerne wissen, wie ich direkt in das JMP-Format übertragen kann, das JSL (JMP Script Language) DataFrame-Daten in der JSL-Umgebung erkennt. Dies bedeutet, dass JSL den Pandas-DataFrame als JMP-DataFrame erkennt. Der Grund dafür ist, dass ich in meinem Fall fast die gesamte JSL-Automatisierungsarbeit erledigen kann, wenn ich sie im JMP-Datenformat starten kann.
Betreff: Wie konvertiere ich Python Pandas DataFrame in das JMP-Format, ohne es als Dateien zu speichern?Wenn die Dateien klein sind und in die Zwischenablage passen, können Sie den Datenrahmen einfach in der Zwischenablage speichern und ihn aus der Zwischenablage in JMP einfügen.
Dies ist ein Beispiel aus einem Discovery Summit Talk:
https://community.jmp.com/t5/Discovery-Summit-2017/Leveraging-Python-and-REST-to-Introduce-SAS-Viya-TM-Processing/ta-p/44078
names default to here(1);
path=Get Current Directory();
dt1=Open("$SAMPLE_DATA/Big Class.jmp");
current data table(dt1);
dt1<< Bring Window To Front;
main menu("Copy With Column Names");
text="\[
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df=pd.read_clipboard(sep='\\s+')
size= (df.height * df.weight)/df.age ** .5
ax = plt.subplot(111, projection='polar')
c = plt.scatter(df.height, df.weight, c=df.age, s=size, cmap=plt.cm.hsv)
c.set_alpha(0.55)#transparency
plt.show()
]\";
path=Get Current Directory();
save text file(path||"graph.py", text);
x = RunProgram(
executable( "/Users/user1/anaconda/bin/python" ),
options(path||"graph.py")
,readfunction("blob")
);
close(dt1, nosave);//this executes as soon as the graph window is closed