pandas.api.interchange.from_dataframe#

pandas.api.interchange.from_dataframe(df, allow_copy=True)[source]#

Build a pd.DataFrame from any DataFrame supporting the interchange protocol.

Note

For new development, we highly recommend using the Arrow C Data Interface alongside the Arrow PyCapsule Interface instead of the interchange protocol

Warning

Due to severe implementation issues, we recommend only considering using the interchange protocol in the following cases:

  • converting to pandas: for pandas >= 2.0.3

  • converting from pandas: for pandas >= 3.0.0

Parameters:
dfDataFrameXchg

Object supporting the interchange protocol, i.e. __dataframe__ method.

allow_copybool, default: True

Whether to allow copying the memory to perform the conversion (if false then zero-copy approach is requested).

Returns:
pd.DataFrame

A pandas DataFrame built from the provided interchange protocol object.

See also

pd.DataFrame

DataFrame class which can be created from various input data formats, including objects that support the interchange protocol.

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.