pandas.DataFrame.__dataframe__#
- DataFrame.__dataframe__(nan_as_null=False, allow_copy=True)[source]#
Return the dataframe interchange object implementing the interchange protocol.
- Parameters:
- nan_as_nullbool, default False
Whether to tell the DataFrame to overwrite null values in the data with
NaN
(orNaT
).- allow_copybool, default True
Whether to allow memory copying when exporting. If set to False it would cause non-zero-copy exports to fail.
- Returns:
- DataFrame interchange object
The object which consuming library can use to ingress the dataframe.
Notes
Details on the interchange protocol: https://data-apis.org/dataframe-protocol/latest/index.html
nan_as_null currently has no effect; once support for nullable extension dtypes is added, this value should be propagated to columns.
Examples
>>> df_not_necessarily_pandas = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) >>> interchange_object = df_not_necessarily_pandas.__dataframe__() >>> interchange_object.column_names() Index(['A', 'B'], dtype='object') >>> df_pandas = (pd.api.interchange.from_dataframe ... (interchange_object.select_columns_by_name(['A']))) >>> df_pandas A 0 1 1 2
These methods (
column_names
,select_columns_by_name
) should work for any dataframe library which implements the interchange protocol.