<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: JMP19 - Dataframe Interchange Protocol deprecation warning in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/951294#M109886</link>
    <description>&lt;P&gt;Generally, our recommendation would be to continue using the more modern methods of DataFrame conversions like the interchange protocol due to their performance benefit. If scripts specifically require access to console output, then suppressing the warning may be of help but is generally not recommended:&lt;/P&gt;
&lt;PRE&gt;import warnings
warnings.simplefilter(action='ignore', category=DeprecationWarning)&lt;/PRE&gt;
&lt;P&gt;In terms of stability, this deprecation is marked Pandas4Warning, which means that these warnings will be enforced in pandas 4.0 (see &lt;A href="https://pandas.pydata.org/docs/whatsnew/v3.0.0.html#updated-deprecation-policy" target="_blank" rel="noopener"&gt;Updated deprecation policy&lt;/A&gt;). Historically, pandas has had a major release roughly every ~3 years though they have not (to my knowledge) indicated the estimated release date. We are still confident that the Arrow PyCapsule interface will be available in JMP by pandas 4.0.&lt;BR /&gt;&lt;BR /&gt;Without knowing the specific JMP/pandas versions the workflow relies on, a custom DataTable conversion still may be more suited to the use case. It also should be noted that &lt;FONT face="courier new,courier"&gt;jmp.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT face="courier new,courier"&gt;from_dataframe_using_csv&lt;/FONT&gt; is also available and has seen no significant difference with the major release of pandas (tested with 2.3.3 vs 3.0.0). That function is available in JMP 19 and will continue to be available with JMP 20.&lt;BR /&gt;&lt;BR /&gt;As of the current implementation, &lt;FONT face="courier new,courier"&gt;jmp.from_dataframe()&lt;/FONT&gt; will call the Arrow PyCapsule interface (&lt;FONT face="courier new,courier"&gt;jmp.from_arrow&lt;/FONT&gt;) internally when called with a pandas.DataFrame to help backwards-compatibility so no adjustment to the script itself should be necessary. However, to your next question, pandas does have pyarrow as a required dependency when using these methods, so you may have to revisit the execution environment to install pyarrow. To our knowledge, this seems to be more specific to pandas since polars does not require the additional pyarrow dependency.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;We'd be happy to clarify or answer any more questions you might have about Python or DataFrame conversions so feel free to ask whenever.&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 29 May 2026 18:51:41 GMT</pubDate>
    <dc:creator>EvanCarr</dc:creator>
    <dc:date>2026-05-29T18:51:41Z</dc:date>
    <item>
      <title>JMP19 - Dataframe Interchange Protocol deprecation warning</title>
      <link>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949655#M109823</link>
      <description>&lt;P&gt;Seeing this in my JSL Logs recently, has jmp19 adapted to something else ?&amp;nbsp;This will eventually be phased out, i have used a custom fuction to convert jmp table to pandas dataframe in jmp18 but that didn't work for jmp19. So, what are the ways to achieve the same now?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I run my python code inside the JSL Script.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Python Send(o28k_raw);&lt;BR /&gt;Python Submit(&lt;BR /&gt;raw_data = pd.api.interchange.from_dataframe(o28k_raw)&lt;BR /&gt;);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This warning:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;
&amp;lt;string&amp;gt;:18: Pandas4Warning: The Dataframe Interchange Protocol is deprecated.
For dataframe-agnostic code, you may want to look into:
- Arrow PyCapsule Interface: https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html
- Narwhals: https://github.com/narwhals-dev/narwhals&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 May 2026 05:07:17 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949655#M109823</guid>
      <dc:creator>zetaVagabond1</dc:creator>
      <dc:date>2026-05-21T05:07:17Z</dc:date>
    </item>
    <item>
      <title>Re: JMP19 - Dataframe Interchange Protocol deprecation warning</title>
      <link>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949679#M109825</link>
      <description>&lt;P&gt;Have you seen &lt;A href="https://community.jmp.com/t5/JMPer-Cable/Going-further-with-Python-in-JMP-19/ba-p/898522" target="_blank"&gt;Going further with Python in JMP 19 - JMP User Community&lt;/A&gt;?&lt;/P&gt;
&lt;P&gt;Working with Pandas Dataframes became easier in JMP 19, using the new function&amp;nbsp;&lt;SPAN&gt;jmp.from_dataframe().&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 21 May 2026 07:47:08 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949679#M109825</guid>
      <dc:creator>christian-z</dc:creator>
      <dc:date>2026-05-21T07:47:08Z</dc:date>
    </item>
    <item>
      <title>Re: JMP19 - Dataframe Interchange Protocol deprecation warning</title>
      <link>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949703#M109830</link>
      <description>&lt;P&gt;I found below mentioned code from the same link but the query is diff as I have mentioned.&lt;/P&gt;
&lt;PRE&gt;pd.api.interchange.from_dataframe()&lt;/PRE&gt;</description>
      <pubDate>Thu, 21 May 2026 08:32:27 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949703#M109830</guid>
      <dc:creator>zetaVagabond1</dc:creator>
      <dc:date>2026-05-21T08:32:27Z</dc:date>
    </item>
    <item>
      <title>Re: JMP19 - Dataframe Interchange Protocol deprecation warning</title>
      <link>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949708#M109834</link>
      <description>&lt;P&gt;Interesting, when I run the following Python script I do not see any warnings:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;import jmp
import pandas as pd

dt = jmp.open(jmp.SAMPLE_DATA + "Big Class.jmp")
pandas_df = (pd.api.interchange.from_dataframe(dt))
print(pandas_df) &lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could you check to see if the error occurs when running the Python from within JMP's Python editor, or if it is specific to Python executed using Python Submit?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I also tried the following at it did not give me an error:&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Python Send( dt );
Python Submit( "pandas_df = (pd.api.interchange.from_dataframe(dt))" );
Python Submit( "dt2 = jmp.from_dataframe(pandas_df)" );
Python Get(dt2);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Could you test these scripts to see if they also give the same warning on your end?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 May 2026 09:00:39 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949708#M109834</guid>
      <dc:creator>christian-z</dc:creator>
      <dc:date>2026-05-21T09:00:39Z</dc:date>
    </item>
    <item>
      <title>Re: JMP19 - Dataframe Interchange Protocol deprecation warning</title>
      <link>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949712#M109836</link>
      <description>&lt;P&gt;I see this warning when I run python executed using Python Submit as well as when I run the python script from JMP's python editor&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;pandas_df = (pd.api.interchange.from_dataframe(dt))
/*:
&amp;lt;string&amp;gt;:1: Pandas4Warning: The Dataframe Interchange Protocol is deprecated.
For dataframe-agnostic code, you may want to look into:
- Arrow PyCapsule Interface: https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html
- Narwhals: https://github.com/narwhals-dev/narwhals&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;//:*/
import jmp
import pandas as pd

dt = jmp.open(jmp.SAMPLE_DATA + "Big Class.jmp")
pandas_df = (pd.api.interchange.from_dataframe(dt))
print(pandas_df)
/*:
&amp;lt;string&amp;gt;:5: Pandas4Warning: The Dataframe Interchange Protocol is deprecated.
For dataframe-agnostic code, you may want to look into:
- Arrow PyCapsule Interface: https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html
- Narwhals: https://github.com/narwhals-dev/narwhals&lt;/PRE&gt;</description>
      <pubDate>Thu, 21 May 2026 09:18:27 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949712#M109836</guid>
      <dc:creator>zetaVagabond1</dc:creator>
      <dc:date>2026-05-21T09:18:27Z</dc:date>
    </item>
    <item>
      <title>Re: JMP19 - Dataframe Interchange Protocol deprecation warning</title>
      <link>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949737#M109839</link>
      <description>&lt;P&gt;Thanks for the reply. The Python snippet above is from the scripting index, so it usually runs without any issues.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In case you are not running the latest version of JMP (19.1.2), it might be a good idea to update and then try again. If you are already on the latest version, then I&amp;nbsp;would recommend reaching out to&amp;nbsp;JMP Technical Support &lt;A href="mailto:support@jmp.com" target="_blank"&gt;support@jmp.com&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 May 2026 12:11:24 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949737#M109839</guid>
      <dc:creator>christian-z</dc:creator>
      <dc:date>2026-05-21T12:11:24Z</dc:date>
    </item>
    <item>
      <title>Re: JMP19 - Dataframe Interchange Protocol deprecation warning</title>
      <link>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949747#M109840</link>
      <description>&lt;P&gt;The warning is coming from pandas itself. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;We have made the updates internally to utilize the PyCapsule interface. &amp;nbsp;Exactly when that ships will be a matter of testing to ensure stability. &amp;nbsp;This will also add the jmp.from_arrow() function and extension of the jmp.DataTable object to support the Arrow interface requirements. &amp;nbsp;The jmp.from_dataframe() is reworked internally to utilize the new functionality.&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;import pandas as pd

dt = jmp.open(jmp.SAMPLE_DATA + "Big Class.jmp")
pandas_df = pd.DataFrame.from_arrow(dt)
print(pandas_df) &lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 May 2026 13:41:41 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949747#M109840</guid>
      <dc:creator>Paul_Nelson</dc:creator>
      <dc:date>2026-05-21T13:41:41Z</dc:date>
    </item>
    <item>
      <title>Re: JMP19 - Dataframe Interchange Protocol deprecation warning</title>
      <link>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949748#M109841</link>
      <description>&lt;P&gt;The warning comes about with pandas 3.0 and greater&lt;/P&gt;</description>
      <pubDate>Thu, 21 May 2026 13:43:15 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/949748#M109841</guid>
      <dc:creator>Paul_Nelson</dc:creator>
      <dc:date>2026-05-21T13:43:15Z</dc:date>
    </item>
    <item>
      <title>Re: JMP19 - Dataframe Interchange Protocol deprecation warning</title>
      <link>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/951149#M109879</link>
      <description>&lt;P class="isSelectedEnd"&gt;&lt;SPAN&gt;Thank you for the clarification.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;My understanding is that the current deprecation warning originates from Pandas rather than JMP, and that future JMP releases will support the Arrow/PyCapsule interface directly, allowing workflows such as:&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;dt = jmp.open(...)
pandas_df = pd.DataFrame.from_arrow(dt)&lt;/PRE&gt;
&lt;P class="isSelectedEnd"&gt;&lt;SPAN&gt;without relying on the DataFrame Interchange Protocol.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="isSelectedEnd"&gt;&lt;SPAN&gt;In the meantime, I am trying to determine the best approach for maintaining production scripts that are deployed across JMP versions.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Historically, in JMP 18, I relied on a custom conversion function:&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;def jmp_to_pandas(jmp_table):
  data = {} &lt;BR /&gt;  for col in jmp_table: &lt;BR /&gt;     data[col.name] = list(col) &lt;BR /&gt;  return pd.DataFrame(data)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;
&lt;P class="isSelectedEnd"&gt;&lt;SPAN&gt;After moving to JMP 19, I switched to:&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE dir="ltr"&gt;&lt;CODE dir="ltr"&gt;&lt;SPAN&gt;pd.api.interchange.from_dataframe(...)&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P class="isSelectedEnd"&gt;&lt;SPAN&gt;which works but now generates the Pandas deprecation warning.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="isSelectedEnd"&gt;&lt;SPAN&gt;Would your recommendation be to continue using the interchange API until the Arrow support ships and I have to re-visit the production deployed script, or would you suggest reverting to a custom DataTable to DataFrame conversion for production code that needs to remain stable across Pandas and JMP version updates?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="isSelectedEnd"&gt;&lt;SPAN&gt;Also, for the upcoming Arrow implementation, will &lt;/SPAN&gt;&lt;CODE dir="ltr"&gt;&lt;SPAN&gt;pyarrow&lt;/SPAN&gt;&lt;/CODE&gt;&lt;SPAN&gt; be a required dependency, or will the Arrow interface be exposed through JMP without requiring users to install additional packages?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Thank you for the additional context.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 29 May 2026 04:07:06 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/951149#M109879</guid>
      <dc:creator>zetaVagabond1</dc:creator>
      <dc:date>2026-05-29T04:07:06Z</dc:date>
    </item>
    <item>
      <title>Re: JMP19 - Dataframe Interchange Protocol deprecation warning</title>
      <link>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/951294#M109886</link>
      <description>&lt;P&gt;Generally, our recommendation would be to continue using the more modern methods of DataFrame conversions like the interchange protocol due to their performance benefit. If scripts specifically require access to console output, then suppressing the warning may be of help but is generally not recommended:&lt;/P&gt;
&lt;PRE&gt;import warnings
warnings.simplefilter(action='ignore', category=DeprecationWarning)&lt;/PRE&gt;
&lt;P&gt;In terms of stability, this deprecation is marked Pandas4Warning, which means that these warnings will be enforced in pandas 4.0 (see &lt;A href="https://pandas.pydata.org/docs/whatsnew/v3.0.0.html#updated-deprecation-policy" target="_blank" rel="noopener"&gt;Updated deprecation policy&lt;/A&gt;). Historically, pandas has had a major release roughly every ~3 years though they have not (to my knowledge) indicated the estimated release date. We are still confident that the Arrow PyCapsule interface will be available in JMP by pandas 4.0.&lt;BR /&gt;&lt;BR /&gt;Without knowing the specific JMP/pandas versions the workflow relies on, a custom DataTable conversion still may be more suited to the use case. It also should be noted that &lt;FONT face="courier new,courier"&gt;jmp.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT face="courier new,courier"&gt;from_dataframe_using_csv&lt;/FONT&gt; is also available and has seen no significant difference with the major release of pandas (tested with 2.3.3 vs 3.0.0). That function is available in JMP 19 and will continue to be available with JMP 20.&lt;BR /&gt;&lt;BR /&gt;As of the current implementation, &lt;FONT face="courier new,courier"&gt;jmp.from_dataframe()&lt;/FONT&gt; will call the Arrow PyCapsule interface (&lt;FONT face="courier new,courier"&gt;jmp.from_arrow&lt;/FONT&gt;) internally when called with a pandas.DataFrame to help backwards-compatibility so no adjustment to the script itself should be necessary. However, to your next question, pandas does have pyarrow as a required dependency when using these methods, so you may have to revisit the execution environment to install pyarrow. To our knowledge, this seems to be more specific to pandas since polars does not require the additional pyarrow dependency.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;We'd be happy to clarify or answer any more questions you might have about Python or DataFrame conversions so feel free to ask whenever.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 29 May 2026 18:51:41 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/JMP19-Dataframe-Interchange-Protocol-deprecation-warning/m-p/951294#M109886</guid>
      <dc:creator>EvanCarr</dc:creator>
      <dc:date>2026-05-29T18:51:41Z</dc:date>
    </item>
  </channel>
</rss>

