942295_zh-TW
JMP 19 Python 整合:將資料表轉換為 Pandas 時出現 ValueError:year 0 錯誤
大家好,
I am upgrading my scripts from JMP18 to JMP19 and 'm hitting a particular roadblock with this integration. In JMP 18, I used custom function to loop through columns and create Pandas DataFrame. It worked perfectly. However in JMP19, the exact code throws a
ValueError: year 0 is out of range.
Here is the snippet:
Python Send("raw_data");
</CODE>
</DIV>
<DIV class="Y3BBE" data-sfc-cp="" data-sfc-root="c" data-sfc-cb="" data-hveid="CAEIBRAA" data-complete="true" data-processed="true">
<PRE>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)
</PRE>
<CODE class="KDcb0c" dir="ltr" data-sae="" data-complete="true" data-sfc-cb="" data-sfc-root="c">data1 = jmp_to_pandas(raw_data)
</CODE>
</DIV>
<DIV class="Y3BBE" data-sfc-cp="" data-sfc-root="c" data-sfc-cb="" data-hveid="CAEIBRAA" data-complete="true" data-processed="true">
<CODE class="KDcb0c" dir="ltr" data-sae="" data-complete="true" data-sfc-cb="" data-sfc-root="c">
問題:
- JMP 19 中將開啟的資料表轉換為 Pandas DataFrame 的官方方法是什麼?
- Has the
jmp module structure changed? I'm finding it difficult to locate the updated JMP 19 Python API reference on the website.
- 在 JMP 19 中,應如何處理「元年」或 JMP 空日期(1904 年紀元)以避免 Python 日期時間崩潰?
</CODE>
</DIV>
</DIV>
</LINGO-BODY>
<LINGO-LABS id="lingo-labs-942295" slang="en-US" mode="CREATE">
<LINGO-LABEL>自動化和腳本編寫</LINGO-LABEL>
<LINGO-LABEL>資料存取</LINGO-LABEL>
<LINGO-LABEL>數據探索與視覺化</LINGO-LABEL>
<LINGO-LABEL>品質與工藝工程</LINGO-LABEL>
</LINGO-LABS>
<LINGO-SUB id="lingo-sub-942305" slang="en-US" mode="CREATE" translate="no">回覆:JMP 19 Python 整合:將資料表轉換為 Pandas 時出現 ValueError: year 0 錯誤</LINGO-SUB>
<LINGO-BODY id="lingo-body-942305" slang="en-US" mode="CREATE">
<P><A href="https://community.jmp.com/t5/JMPer-Cable/Going-further-with-Python-in-JMP-19/m-p/898522#U898522" class="lia-mention-container-editor-message lia-img-icon-blog-thread lia-fa-icon lia-fa-blog lia-fa-thread lia-fa" target="_blank">在 JMP 19 中進一步學習 Python</A>很可能是一個不錯的起點。</P>
</LINGO-BODY>
<LINGO-SUB id="lingo-sub-943465" slang="en-US" mode="CREATE" translate="no">回覆:JMP 19 Python 整合:將資料表轉換為 Pandas 時出現 ValueError: year 0 錯誤</LINGO-SUB>
<LINGO-BODY id="lingo-body-943465" slang="en-US" mode="CREATE">
<P>有關<STRONG>導入 jmp</STRONG>物件 API 的最新信息,請參閱 JMP 腳本索引中的「Python」類別。文件和範例程式碼提供了最新更新。 jmp 模組在 19 版本中進行了重大更新。</P>
<P>根據你的函數,我認為是 Pandas 拋出了 ValueError 錯誤:Pandas 在 JMP 18 中使用的 Python 3.11 版本和 JMP 19 中使用的 Python 3.13 版本之間發生了變化。</P>
<P>請參閱 jmp.DataTable.from_dataframe() 的腳本索引範例。其中包含多個範例,涵蓋了與 JMP 資料表和其他相容 Python 資料幀的物件(例如 Pandas、Polars、Ibis 等)之間的互通。</P>
<P>具體來說,是「Pandas 到 JMP」和「JMP 到 Pandas」的範例。</P>
<P>JMP 轉 Pandas 範例:</P>
<PRE class="lia-code-sample language-python"><CODE>import jmp
import jmputils
try:
if not jmputils.is_installed('pandas'):
jmputils.jpip('install', 'pandas', echo=False)
except Exception as e:
print(f'Install failed with exception: {e}')
import pandas as pd
dt = jmp.open(jmp.SAMPLE_DATA + "Big Class.jmp")
pandas_df = (pd.api.interchange.from_dataframe(dt))
print(pandas_df)
Comments
There are no comments yet