-
Notifications
You must be signed in to change notification settings - Fork 21
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.