Pandas Python et JMPsalut à tous
J'ai discuté de Python et de JMP avec les partenaires JMP. Au cours de la discussion, ils ont posé deux questions.
1. Comment convertir des colonnes de pandas Python en colonnes JMP (directement) sans les sauvegarder?
2 En cas d'utilisation de Python Init () dans JMP, il existe un problème empêchant l'importation des pandas.
1) Lorsque nous exécutons Python Init () dans JMP, nous importons comme ci-dessous.
importer des pandas comme _JMPpd
(Python3.6 est connecté à JMP et Pandas est déjà installé dans Python3.6) |
La photo 1 est le résultat de importation de pandas et contrôle de version
2) Mais, il y a une erreur dans JMP, image 2
Autre module (ex, sqlalchemy, pymssql, etc.) est OK, il n'y a d'erreur que dans les pandas.
Re: Pandas Python et JMPNous avons discuté à nouveau de ce problème mais il semble y avoir une erreur.
L'API Python ne semble pas être stable. Il y a une erreur dans la bibliothèque pyplot de matplotlib.

Mais ok en Python.

Comment sur le processus suivant?
1. Démarrage du processus JMP avec API JMP Python
depuis win32com.client import Dispatch
jmp = Dispatch ("JMP.Application")
jmp.visible = True #False
2 Pandas de travail en python (démarrage du traitement de données avec Python )
3 Le résultat de pandas convertir en JMP fichier
En attendant, JMP doit proposer une bibliothèque JMP Sned en Python, comme Python Obtenir ()
4 Lancer le script JMP
Script de démarrage après dt = table de données actuelle ()
Re: Pandas Python et JMPMerci Paul,
Avec votre commentaire, j'aurais beaucoup de temps de discussion avec notre partenaire
Merci encore
Re: Pandas Python et JMPEh bien, la réponse précédente vient de montrer qu’il fallait récupérer un objet en python et non obtenir les données des pandas comme prévu. Voici un meilleur exemple. Cela emprunte du code à StackOverflow pour obtenir des données de dataframe vers numpy.
https://stackoverflow.com/questions/13187778/convert-pandas-dataframe-to-numpy-array-preserving-index?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_ka_qa
JMP a un bogue, il ne semble pas pouvoir importer un tableau numpy à moins que ce soit le même type de données ... Cet exemple place donc les données dans le cadre de données, puis les extrait dans un autre dictionnaire, qui est ensuite transféré vers JMP.
Python Init();
Python Submit("\[
import pandas as pd
import numpy as np
print('Pandas Version: ' + pd.__version__)
data = {'state':['Ohio','Ohio','Ohio','Nevada','Nevada','Nevada'],'year':[2000,2001,2002,2001,2002,2003], 'pop':[1.5,1.7,3.6,2.4,2.9,3.2]
}
df = pd.DataFrame(data)
print(df)
v = df.values
print(v)
cols = df.columns
types = [(cols[i], df[k].dtype.type) for (i, k) in enumerate(cols)]
dtype = np.dtype(types)
array = np.zeros(v.shape[0], dtype)
for (i, k) in enumerate(array.dtype.names):
array[k] = v[:, i]
print(array.dtype.names);
print(array)
d={}
l=[]
for (i, k) in enumerate(array.dtype.names):
d[k] = v[:,i].tolist()
print(d)
print('leaving python')
]\");
Print("inJSL");
pyData = Python Get(d);
Print(data);
Python Term();
Donner la sortie suivante
Pandas Version: 0.22.0
pop state year
0 1.5 Ohio 2000
1 1.7 Ohio 2001
2 3.6 Ohio 2002
3 2.4 Nevada 2001
4 2.9 Nevada 2002
5 3.2 Nevada 2003
[[1.5 'Ohio' 2000]
[1.7 'Ohio' 2001]
[3.6 'Ohio' 2002]
[2.4 'Nevada' 2001]
[2.9 'Nevada' 2002]
[3.2 'Nevada' 2003]]
('pop', 'state', 'year')
[(1.5, 'Ohio', 2000) (1.7, 'Ohio', 2001) (3.6, 'Ohio', 2002)
(2.4, 'Nevada', 2001) (2.9, 'Nevada', 2002) (3.2, 'Nevada', 2003)]
{'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2], 'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'], 'year': [2000, 2001, 2002, 2001, 2002, 2003]}
leaving python
"inJSL"
["pop" => {1.5, 1.7, 3.6, 2.4, 2.9, 3.2}, "state" => {"Ohio", "Ohio", "Ohio", "Nevada", "Nevada", "Nevada"}, "year" => {2000, 2001, 2002, 2001, 2002, 2003}]
0Re: Pandas Python et JMPLa prise en charge de Python par JMP est un travail en cours, veuillez continuer à nous aider à améliorer ses capacités et sa facilité d’utilisation. J'ai exécuté le code ci-dessous dans JMP 14.1 sur Mac en utilisant Python 3.6.4 directement à partir de Python.org
Les pandas sont en cours d'importation, c'est simplement que les variables d'une ligne ne sont pas évaluées dans la fenêtre de journal. Si vous le recouvrez d'une impression (pd .__ version__), vous obtenez la valeur du journal. Le code ci-dessous montre cela, et montre comment prendre un pandas DataFrame et récupérer les données dans JMP en tant qu’objet de script.
Python Init(Path("/Library/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6.dylib"), Use Python Version("3.6") );
Python Submit("\[
import pandas as pd
print('Pandas Version: ' + pd.__version__)
data = {'state':['Ohio','Ohio','Ohio','Nevada','Nevada','Nevada'],'year':[2000,2001,2002,2001,2002,2003], 'pop':[1.5,1.7,3.6,2.4,2.9,3.2]
}
frame = pd.DataFrame(data)
print(frame)
]\");
data = Python Get(data);
Print(data);
Python Term();
Les résultats de ce code:
Pandas Version: 0.22.0
pop state year
0 1.5 Ohio 2000
1 1.7 Ohio 2001
2 3.6 Ohio 2002
3 2.4 Nevada 2001
4 2.9 Nevada 2002
5 3.2 Nevada 2003
["pop" => {1.5, 1.7, 3.6, 2.4, 2.9, 3.2}, "state" => {"Ohio", "Ohio", "Ohio", "Nevada", "Nevada", "Nevada"}, "year" => {2000, 2001, 2002, 2001, 2002, 2003}]
0
À partir de l'objet de script, il peut être traité dans une nouvelle table de données.