Description
I couldn't work out if the interchange dataframe (i.e. the dataframe returned from __dataframe__()
) should also have a __dataframe__()
method, e.g.
>>> import pandas as pd
>>> df = pd.DataFrame() # i.e. the top-level dataframe
>>> interchange_df1 = df.__dataframe__()
>>> interchange_df2 = interchange_df1.__dataframe__()
With the upstream of current adopters, we have a split on whether the interchange dataframe has this method.
Library | Top-level | Interchange |
---|---|---|
pandas | ✔️ | ✔️ |
vaex | ✔️ | ❌ |
modin | ✔️ | ✔️ |
cuDF | ✔️ | ❌ |
I had assumed that interchange dataframes should have __dataframe__()
by virtue of it being a method in the DataFrame API object. I think it makes sense, as then from_dataframe()
-like functions only need to check for __dataframe__()
to support interchanging both top-level and interchange dataframes of different libraries.
If there is explicit specification somewhere in this regard then please give me a pointer! In any case, it might be worth clarifying in the __dataframe__()
docstring where this method should be residing.