Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제문맥:
I am using JMP 18 with Python integration to merge multiple datasets. The merge and processing in Python works correctly using pandas, but when I try to send the final pandas DataFrame back to JMP using Python Get(), the resulting JMP Data Table is empty. I want to create a JMP table from my pandas DataFrame in Python and access it in JSL.
내가 시도하고 있는 것의 예:
</CODE></STRONG></PRE>
<PRE>// Send JMP tables to Python
Python Send(jmp_table1);
Python Send(jmp_table2);
// Python processing
Python Submit("
import pandas as pd
def jmp_to_pandas(jmp_table):
cols = list(jmp_table)
data_dict = {}
for col in cols:
data_dict[col.name] = list(col)
return pd.DataFrame(data_dict)
# Convert JMP tables to pandas DataFrames
df1 = convert_jmp_to_pandas(jmp_table1)
df2 = convert_jmp_to_pandas(jmp_table2)
# Merge tables
merged_df = pd.merge_asof(df2, df1, left_on='Time', right_on='Time', direction='nearest')
");
// Attempt to bring merged DataFrame back to JMP
dt_merged = Python Get(merged_df);
dt_merged << Set Name("Merged_Data");
dt_merged << Show Window;
</PRE>
<PRE><STRONG data-start="638" data-end="669"><CODE class=" language-jsl">
관찰된 문제:
-
dt_merged is created but contains no data. [하지만 데이터 프레임은 csv로 저장해서 사용할 수 있도록 생성되었습니다.]
-
Using global in Python does not seem to fix the issue.
-
Python Get() does not appear to recognize the pandas DataFrame correctly.
내가 원하는 것:
-
Python에서 pandas DataFrame을 JMP 테이블로 변환합니다.
-
적절한 이름으로 JSL로 접근하고, 창을 표시하고, 열을 조작합니다.
-
빈 테이블을 만들지 말고 모든 행/열을 유지하세요.
내가 고려하고 있는 잠재적 해결책:
환경:
-
제이엠피 18
-
Python 3.x(임베디드)
- JSL 스크립트 내부에서 사용
Python에서 JMP로 팬더 데이터 프레임을 다시 보내는 방법에 대한 지침이나 실제 사례를 알려주시면 감사하겠습니다!
자동화 및 스크립팅기본 데이터 분석 및 모델링데이터 액세스데이터 블렌딩 및 정리데이터 탐색 및 시각화Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제스크립팅 가이드 > Python > JMP 데이터 테이블에서 Pandas 데이터 프레임 만들기에서 "데이터 테이블 열을 순회하며 Pandas 데이터 프레임 만들기 " 예제를 확인해 보세요. 또한 JMP19에서는 중간 단계 CSV 파일 없이 Python 데이터 프레임을 JMP 데이터 테이블로 변환하는 것이 더 쉬울 것 같지만(JMP Wish List), JMP19의 여러 가지 문제로 아직 시도해 보지 못했습니다.
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제dt_merged에는 데이터가 포함되어 있지만 뷰는 포함되어 있지 않습니다.
사용
dt_merged << 새 데이터 보기 ;
대신에
dt_merged << 창 표시;
테이블은 존재하지만 아직 연관된 창이 없습니다.
JMP 18 Python Get(df)는 JMP 14-17과 마찬가지로 내부적으로 데이터프레임 -> CSV, CSV -> data_table을 사용합니다. JMP 데이터 테이블만 JMP/Python 경계를 넘어 데이터에 실시간으로 접근할 수 있습니다.
JMP 19에서는 상황이 훨씬 나아졌습니다. JMP는 Portable Dataframe Protocol을 지원하며, JMP dt에서 pandas DataFrame으로 변환하는 코드 한 줄과 DataFrame에서 DataTable로 변환하는 코드 한 줄만 더 추가하면 됩니다. 이 기능은 DataFrame Protocol을 지원하는 패키지와 같은 모든 데이터프레임에서 작동하며, 변환은 메모리에서 이루어집니다.
다른 방법은 Python에서 jmp.DataTable API를 사용하여 병합된 데이터 테이블을 만들고, 데이터프레임 열을 탐색하여 새 데이터 테이블에 JMP 열을 하나씩 생성하는 것입니다. 테이블에 시간 데이터가 포함되어 있는 것 같습니다. 이 부분은 주의해서 수정해야 합니다. JMP 14-18에서는 JMP의 데이터 시간 표현과 Python의 데이터 시간 표현을 마샬링해야 합니다 . JMP의 에포크 날짜는 1904년 1월 1일(Mac의 Excel과 동일)인 반면, Python의 에포크 날짜는 1970년 1월 1일입니다.
JMP 19는 JSL/Python 경계를 넘어 datetime 값을 적절하게 정렬합니다.
스크립팅 인덱스의 'Python' 섹션에는 제이엠피 가져오기 패키지에 대한 예제가 있습니다.
JMP 19로 업데이트하는 것을 강력히 추천합니다. JMP 18은 JMP의 Python 통합에 있어 근본적인 변화를 가져왔습니다. JMP 18의 지원이 기대했던 만큼 완벽하지는 않았지만, JMP 19까지 기다릴 수 없을 만큼 많은 기능을 제공했습니다.
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제jmp.DataTable 객체는 반복 가능하므로 for 루프에서 jmp_table을 직접 사용할 수 있습니다. 이미 열 목록처럼 동작합니다.
def jmp_to_pandas(jmp_table):
data_dict = {}
for col in jmp_table:
data_dict[col.name] = list(col)
return pd.DataFrame(data_dict)
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제제 데이터 프레임의 날짜가 꽤 기이한 것을 확인했습니다. 스크린샷을 참조하세요. 이것은 날짜 형식이며 영향을 받는 것은 몇 가지뿐이고 날짜-시간은 영향을 받지 않는 것 같습니다.
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제이는 초 단위의 날짜입니다. 열 설정을 변경하면 원하는 숫자를 날짜로 표시할 수 있습니다.

Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제안녕하세요, 감사합니다. 해결했습니다. 하지만 JSL과 Python 코드를 동시에 사용하고 있습니다. 코드 자체에서 이 문제를 해결할 수 있는 더 좋은 방법이 있을까요?
1 - 파이썬에서 에포크 시간 오프셋을 사용한 프로세스
2- jsl 코드에서 각 열에 열 형식을 다시 지정합니다. [지루함]
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제- Unix 타임스탬프를 실제 날짜 및 시간으로 변환
<BR />:col << Format( "yyyy-mm-dd" );
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제스크린샷은 예시일 뿐이고, 열이 수백 개 있습니다.:\ , 원본 데이터의 형식이 일관되지 않습니다. 감사합니다.
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제JMP19?
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제JMP 18, org가 JMP19로 마이그레이션되지 않습니다. 테스트 버전 출시인지 개발된 애플리케이션인지 잘 모르겠습니다. 아마도 이후 버전일 것 같습니다.
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제JMP19.1에서 누락된 일부 기능이 다시 추가될 때까지 기다려 보세요. 문서화되지 않은 비밀
그 외에도:
JMP19로 전환해야 하는 이유 중 하나: from_dataframe()
JMP 19에서 Python을 더 깊이 활용하기
또 다른 이유는 열 태그와 필터 뷰와 같은 데이터 그리드의 놀라운 개선 때문입니다.
JMP 19 데이터 테이블에서 데이터 구성 및 필터링
테스트 시스템에 JMP19를 "수동으로" 설치할 수 있는 기회가 있나요?
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제네, 가능합니다. 아직 해본 적은 없습니다. 제가 JMP18을 사용하지 않는 또 다른 이유는 스크립트 호환성 때문입니다. 다른 사용자들은 JMP18을 계속 사용할 테니까요. 저는 이미 테이블 참조 및 조인과 관련하여 많은 문제에 직면하고 있습니다.
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제
@zetaVagabond1 님 이 썼습니다:
저는 이미 테이블 참조와 조인과 관련하여 많은 문제에 직면해 있습니다.
JMP18과 JMP17의 문제점은 무엇인가요?
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제JMP는 시간 0(초)에 1904년 1월 1일 에포크를 사용합니다(Mac Excel 에포크 날짜).
Python은 시간 0에 표준 UNIX 1970년 1월 1일 에포크 날짜를 초 단위로 사용합니다.
JMP 19는 JSL/Python 경계를 넘어 날짜/시간 값을 적절하게 정렬합니다.
JMP 19에는 메모리의 데이터 프레임에서 직접 날짜 테이블을 생성하는 dt = jmp.from_dataframe(df)가 있습니다.
JMP 18에서 메모리 내에서 선택할 수 있는 유일한 방법은 열을 직접 만드는 것인데, 판다스 열을 반복하고 날짜/시간 변환에 주의하는 것입니다.
또는 CSV를 사용할 수도 있습니다. JMP 14-17에서 사용했던 방식입니다. 하지만 이진 -> CSV -> 이진으로 변환할 때 숫자형에서 약간의 이진 차이가 발생할 수 있습니다. JMP 18의 SAMPLE_SCRIPTS/Python 디렉터리에 CSV 변환 방법을 보여주는 샘플이 있습니다. 기본적으로 pandas에 csv로 저장하도록 설정한 다음, JMP에 CSV 파일을 열도록 설정하는 것입니다.
19로 업그레이드하는 것을 적극 권장합니다. 19에서는 데이터 테이블 처리 기능이 대폭 개선되었습니다.
Re: Python에서 JMP 18 데이터 테이블로 Pandas DataFrame을 보내는 문제로리 바덴: 시간을 늘리는 방법은?
https://www.youtube.com/watch?v=y2X7c9TUQJ8

여기: IT 부서가 JMP19로 전환할 때까지 오늘 기다리세요. 그들을 설득하기 위해 노력해 보세요.
그러면 내일 훌륭한 코드를 작성해서 사용할 수 있을 거예요.
또 다른 대안은 오늘날 이미 오래된 코드를 오늘부터 작성하는 것입니다.
JMP19를 사용한 Python:
- 코딩하기 쉬움
- 날씬하다
- 훨씬 더 빠르다