Skip to main content
`Ctrl`+`K`

# pandas.api.interchange.from_dataframe

pandas.api.interchange.from_dataframe(df, allow_copy=True)

  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. From pandas 2.3 onwards, from_dataframe uses the PyCapsule Interface, only falling back to the interchange protocol if that fails.

  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

  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.