파일로 저장하지 않고 Python Pandas dataFrame을 jmp 형식으로 변환하는 방법은 무엇입니까?JMP 스크립트 환경 내에서 JMP가 "Python 인터페이스" 기능을 지원한다는 것을 알고 있습니다. 그러나 때로는 Python 엔지니어와 JMP 엔지니어가 독립적으로 공동 작업을 수행하는 것이 더 나을 수 있습니다.
우리의 경우 Python 엔지니어는 DB 인터페이스로 데이터베이스 파일을 읽고 Pandas 라이브러리로 전처리를 하고 JMP 엔지니어는 JSL로 데이터 분석 및 후처리를 수행하기 위해 JMP 형식 데이터만 있으면 되므로 JMP 형식으로 변환하려고 합니다.
당신이 상상하는 것처럼 병목 현상은 파일로 저장하지 않고 Python Pandas dataFrame을 변환하는 방법입니다. 가장 쉬운 방법은 파일을 저장하고 jmp 형식으로 읽는 것이지만 저장하고 읽는 데 많은 시간이 걸립니다. Python Pandas dataFrame을 메모리에서 직접 jmp 형식으로 변환하는 라이브러리가 어디에 있는지 알고 싶습니다.
Re: Python Pandas 데이터 프레임을 파일로 저장하지 않고 jmp 형식으로 변환하는 방법은 무엇입니까?게시물을 다시 주셔서 감사합니다.JMP로 직접 .parquet 파일을 간단히 열 수 있으면 좋겠습니다.
우리는 이미 DB 연결을 사용하여 데이터를 가져오지만 전체 데이터 파이프라인(추출 쓰기, 저장, 읽기)에서 .csv를 사용하는 데에는 많은 비효율이 있으므로 Parquet 사용을 시작하고 싶습니다.
Re: Python Pandas 데이터 프레임을 파일로 저장하지 않고 jmp 형식으로 변환하는 방법은 무엇입니까?JSON 형식은 처리하기에 너무 많습니다.
Re: Python Pandas 데이터 프레임을 파일로 저장하지 않고 jmp 형식으로 변환하는 방법은 무엇입니까?@Craige_Hales 유다맨 크레이그 
Re: Python Pandas 데이터 프레임을 파일로 저장하지 않고 jmp 형식으로 변환하는 방법은 무엇입니까?To_Json with Orient=table이 좋은 선택일 수 있습니다. 바이너리에서 텍스트로 그리고 다시 그 반대로 변환해야 합니다. JMP의 JSON 마법사는 이를 공정하게 직접 처리해야 합니다. 여러 파일 가져오기와 함께 CSV를 사용하면 실제로 충분히 빠를 수 있습니다. JMP가 열을 가져올 때 모든 CPU 프로세서를 사용하여 열을 병렬로 로드합니다. 구현 방법에 따라 서버 측에서 너무 느릴 수 있습니다.
나는 내 자신의 바이너리를 바이너리 전송으로 롤링했습니다. 베오울프, 뉴턴, 핸슨 씨 블로그 게시물, 언젠가 다시. numpy를 사용하여 Python 코드에서 이진 데이터 블록을 출력하고 Blob을 JSL의 행렬 함수에 사용하여 이진 데이터를 다시 로드했습니다. 데이터가 모두 숫자였기 때문에 잘 작동했습니다.
Re: Python Pandas 데이터 프레임을 파일로 저장하지 않고 jmp 형식으로 변환하는 방법은 무엇입니까?JMP의 "데이터베이스 열기" 명령이나 쿼리 빌더를 사용하여 데이터베이스에서 직접 데이터를 가져올 수 있을 것 같습니다. 데이터베이스용 ODBC 드라이버가 필요합니다. 데이터베이스에 연결한 후 SQL로 쿼리를 제출하여 JMP에서 데이터를 검색할 수 있습니다. Query Builder를 사용하면 SQL을 그래픽으로 작성할 수 있습니다.
CSV는 매우 일반적인 유형의 데이터 전송 파일이므로 그렇게 빨리 포기하지는 않을 것입니다. 또한 JMP 멀티스레드는 텍스트 및 csv 파일을 읽기 때문에 상당히 빠르게 열립니다.
Re: Python Pandas 데이터 프레임을 파일로 저장하지 않고 jmp 형식으로 변환하는 방법은 무엇입니까?안녕하세요!저는 이것이 4년 된 게시물이라는 것을 알고 있으며 JMP 커뮤니티의 새로운 사용자입니다... 하지만 사용 사례의 경우 여기에서 원래 게시물에 제시된 솔루션은 우리의 요구 사항을 포괄적으로 충족하지 못합니다.
Python만 실행하는 서버(JMP/JSL 아님)가 모든 데이터 풀링 및 준비/변환을 수행한 다음 데이터를 직렬화(로컬 파일 쓰기 없이)하고 데이터를 다시 클라이언트로 보낼 수 있기를 바랍니다. JMP에서 직접 읽을 수 있는 형식으로.
우리의 데이터는 더 큽니다... 예를 들어 100k에서 1M 행... 그리고 10에서 100열...이기종(숫자 및 범주형)이며 결측값을 포함할 수 있습니다.
DataFrame.to_() 메소드가 이것을 지원합니까?시간을 절약하기 위해 파일 대신 이러한 pandas 메서드를 작성하고 IO 버퍼링한 다음 JMP 클라이언트로 네트워크를 전송할 수 있습니까?
우리가 작업하고자 하는 주요 후보 형식은 .to_parquet(), to_hdf(), to_feather() 입니다.pandas에 "Stata" 형식으로 쓰는 to_stata() 메서드가 있는 것 같습니다.JSL(SAS)이 Pandas가 언젠가 구현할 수 있을 만큼 충분히 열려 있는지 확신할 수 없습니다(목록에서 낮을 수 있음).요즘은 마루가 보편적인 것 같고, pandas도 1급 타입으로 화살표 "테이블" 타입이 있어서 저희도 신기했어요.
데이터를 다시 구문 분석하고 데이터 유형(숫자, 범주, date_time... ... 따라서 .to_csv() 및 to_json() 또는 기타 텍스트 형식은 실제로 유용하지 않습니다.
게시물을 끝까지 읽어주셔서 미리 감사드리며, 이 게시물에 답장하지 않고 새 스레드를 시작했어야 했는지 알려주세요.
랜달
Re: Python Pandas 데이터 프레임을 파일로 저장하지 않고 jmp 형식으로 변환하는 방법은 무엇입니까?이를 수행하는 한 가지 방법은 Python Pandas dataFrame을 JMP 테이블의 JSL 버전으로.이것은 완전히 지원되고 문서화된 JMP 데이터 테이블 형식입니다.또한 열 속성과 행 상태 등을 포함할 수 있습니다. 해야 할 일의 예를 보려면 기존 JMP 데이터 테이블을 가리키고 JMP에 스크립트를 생성하도록 요청하기만 하면 됩니다. 테이블을 다시 생성합니다.
Re: Python Pandas 데이터 프레임을 파일로 저장하지 않고 jmp 형식으로 변환하는 방법은 무엇입니까?파일로 저장하면서 Python Pandas dataFrame을 jmp 형식으로 변환하는 방법에 대해 자세히 물어봐도 될까요?
데이터를 Pandas dataFrames로 마이닝하고 추가 조사를 위해 JMP에서 쉽게 읽을 수 있는 형식으로 저장하고 싶습니다.
미리 감사드립니다
Re: Python Pandas 데이터 프레임을 파일로 저장하지 않고 jmp 형식으로 변환하는 방법은 무엇입니까?jmp 14 T에는 Python으로 물건을 받고 보내는 데 사용할 수 있는 몇 가지 새로운 기능이 있습니다.
나는 아직 그것들을 사용할 수 없었다.
작동할 수도 있는 Python Get(name)이라는 함수가 있습니다.
Re: Python Pandas 데이터 프레임을 파일로 저장하지 않고 jmp 형식으로 변환하는 방법은 무엇입니까?귀하의 조언에 감사드립니다.
하지만 가능하다면 JSL(JMP Script Language)이 JSL 환경에서 dataFrame 데이터를 인식하는 jmp 형식으로 직접 변환하는 방법을 알고 싶습니다. 이는 JSL이 Pandas dataFrame을 JMP one처럼 인식한다는 것을 의미합니다. 그 이유는 제 경우에는 JMP 데이터 형식으로 시작하면 거의 모든 JSL 자동화 작업을 할 수 있기 때문입니다.
Re: Python Pandas 데이터 프레임을 파일로 저장하지 않고 jmp 형식으로 변환하는 방법은 무엇입니까?파일이 작고 클립보드에 들어갈 수 있는 경우 데이터 프레임을 클립보드에 저장하고 클립보드에서 JMP로 붙여넣기만 하면 됩니다.
다음은 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